sql >> Base de Datos >  >> RDS >> Sqlserver

Cómo obtener el esquema de base de datos de un procedimiento almacenado

No conozco Enterprise Library, pero con ADO.NET simple, el código sería similar al siguiente

//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();
     }
}

A continuación, puede analizar DataTable para obtener información detallada sobre el conjunto de resultados.

Por supuesto, puede usar tipos genéricos en el código anterior:DbCommand, DbParameter, etc. Supongo que con Enterprise Library tendría que hacer básicamente lo mismo:ejecutar el procedimiento almacenado como lo haría normalmente, excepto con la configuración 'SchemaOnly'.