Erhalten Sie die Metadaten über eine Abfrage und eine gespeicherte Prozedur in SQL Server

dba.stackexchange https://dba.stackexchange.com/questions/8819

  •  16-10-2019
  •  | 
  •  

Frage

Ich möchte alle Namen der Spalten in einer bestimmten Abfrage [SQL -Textabfrage] und auch die Spalten in der Auswahlklausel in einer gespeicherten Prozedur erhalten.

Gibt es andere Möglichkeiten, als Regex zu verwenden, um diese Informationen vom SQL -Server zu erhalten? Ich kann den Namen des sp.

Bitte schlagen Sie mir die beste Praxis vor, um diese Informationen während der Verwendung zu erhalten SqlDataReader in C#.

War es hilfreich?

Lösung

SET FMTONLY ON Kann verwendet werden, um nur Spalteninformationen zurückzugeben, keine Zeilen werden verarbeitet oder zurückgegeben.

Gibt nur Metadaten an den Kunden zurück. Kann verwendet werden, um das Format der Antwort zu testen, ohne die Abfrage tatsächlich auszuführen. (Bol)

Andere Tipps

Da dies in C# / .NET und nicht nur auf Datenbankebene geschehen ist SET FMTONLY ON durch Übergabe eines Befehlsverhaltens (optionaler Parameter) von SchemaOnly zu Sqlcommand.executereader:

SqlDataReader _Reader = _Command.ExecuteReader(CommandBehavior.SchemaOnly);

Dies bedeutet, dass Sie die eingereichte Abfrage nicht ändern müssen. Daher sollte dies ein "sauberer" Ansatz sein :-).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit dba.stackexchange
scroll top