Ich extrahiere erfolgreich Spaltendefinitionen aus Datenbanken, die auf einem SQL Server gehostet werden, indem OpenSchema()
ich den ADO Connection- Aufruf in seinen verschiedenen Inkarnationen verwende, damit ich diese Tabellen programmgesteuert in einer anderen SQL-Datenbank neu erstellen kann. So weit, ist es gut.
Die Hauptinteraktion mit den obigen Tabellen erfolgt über mehrere Ansichten. Während OpenSchema()
die Spaltendefinitionen für die Ansicht auf dieselbe Weise zurückgegeben werden können wie die Spaltendefinitionen für eine Tabelle, fehlen wichtige Informationen - welcher Tabelle und Spalte in den zugrunde liegenden Tabellen die Spalte in der Ansicht zugeordnet ist.
Ich habe versucht, auf den SQL-Befehl zuzugreifen, der zum Erstellen der Ansicht mit ADOX-Katalogansichten verwendet wurde, aber es scheint, dass der von uns verwendete OLEDB-Treiber für SQL Server diese Funktionalität nicht unterstützt.
Gibt es eine Möglichkeit, diese Informationen für die Ansichtskonfiguration über ADO abzurufen, entweder so, dass "ColumnX in Spalte Z ColumnY zugeordnet ist" oder in Form des tatsächlichen SQL-Befehls, der zum Erstellen der Ansicht verwendet wird?
quelle
select m.definition from sys.sql_modules m where m.object_id = object_id('dbo.MyView', 'V')
sys.sql_modules
definiert die Spalte folgendermaßen:definition nvarchar(max) SQL text that defines this module. NULL = Encrypted.
[n][var]char
Daten standardmäßig mit 256 Zeichen abgeschnitten werden. Sie können dies über das Menü unterQuery..Query Options...
& mdash; Führen Sie im folgenden modalen Dialog einen Drilldown zumResults>Text
Knoten in der Baumsteuerung auf der linken Seite durch.Microsoft hat die folgenden Methoden zum Abrufen der View-Definition aufgelistet: http://technet.microsoft.com/en-us/library/ms175067.aspx
quelle
Für Benutzer von SQL 2000 lautet der eigentliche Befehl, der diese Informationen bereitstellt:
quelle
quelle
Sie können Tabellen- / Ansichtsdetails über die folgende Abfrage abrufen.
Für Tabelle: sp_help Tabellenname Für Ansicht: sp_help Ansichtsname
quelle
quelle