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

Gibt es eine Möglichkeit, die Ansichtsdefinition mit einfachem ADO von einem SQL Server abzurufen?

Welche Version von SQL Server?

Für SQL Server 2005 und höher erhalten Sie das zum Erstellen der Ansicht verwendete SQL-Skript wie folgt:

select definition
from sys.objects     o
join sys.sql_modules m on m.object_id = o.object_id
where o.object_id = object_id( 'dbo.MyView')
  and o.type      = 'V'

Dies gibt eine einzelne Zeile zurück, die das Skript enthält, das zum Erstellen/Ändern der Ansicht verwendet wurde.

Andere Spalten in der Tabelle informieren über Optionen, die zum Zeitpunkt der Kompilierung der Ansicht vorhanden waren.

Warnhinweise

  • Wenn die Ansicht zuletzt mit ALTER VIEW geändert wurde, ist das Skript eine ALTER VIEW-Anweisung und keine CREATE VIEW-Anweisung.

  • Das Skript gibt den Namen so wieder, wie er erstellt wurde. Sie wird nur aktualisiert, wenn Sie ALTER VIEW ausführen oder die Ansicht mit CREATE VIEW löschen und neu erstellen. Wenn die Ansicht umbenannt wurde (z. B. über sp_rename ) oder der Besitz auf ein anderes Schema übertragen wurde, gibt das Skript, das Sie zurückerhalten, die ursprüngliche CREATE/ALTER VIEW-Anweisung wieder:es gibt nicht den aktuellen Namen des Objekts wieder.

  • Einige Tools kürzen die Ausgabe. Beispielsweise schneidet das MS-SQL-Befehlszeilentool sqlcmd.exe die Daten bei 255 Zeichen ab. Sie können den Parameter -y N übergeben um das Ergebnis mit N zu erhalten Zeichen.