Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como obter o esquema de banco de dados de um procedimento armazenado


Não conheço a Enterprise Library, mas com o ADO.NET simples, o código seria semelhante ao seguinte
//assume an open connection
using(connection)
{
    using (DbCommand command = connection.CreateCommand())
    {
        command.CommantText = "procedure name";
        //setup and add parameters.
        SqlParameter parameter = command.CreateParameter();
        parameter.Name = "param name";
        //set the mode - out/inputOutput etc
        //set the size
        //set value to DBNull.Value

        //execute the stored procedure with SchemaOnly parameter
        var reader = command.ExecuteReader(CommandBehavior.SchemaOnly);
        var table = reader.GetSchemaTable();
     }
}

Você pode então analisar o DataTable para obter informações detalhadas do conjunto de resultados.

É claro que você pode usar tipos genéricos no código acima - DbCommand, DbParameter etc. Meu palpite é que com a Enterprise Library você precisaria basicamente fazer o mesmo - executar o procedimento armazenado como faria normalmente, exceto com a configuração 'SchemaOnly'.