Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So erhalten Sie das Datenbankschema einer gespeicherten Prozedur

Ich kenne die Enterprise Library nicht, aber mit einfachem ADO.NET würde der Code dem folgenden ähneln

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

Anschließend können Sie die DataTable nach detaillierten Ergebnissatzinformationen analysieren.

Sie können natürlich generische Typen im obigen Code verwenden - DbCommand, DbParameter usw. Ich vermute, dass Sie mit Enterprise Library im Grunde dasselbe tun müssten - führen Sie die gespeicherte Prozedur wie gewohnt aus, außer mit der Einstellung "SchemaOnly".