Benutzer mit den meisten Antworten
sp_addextendedproperty mit SQL String auslesen

Frage
-
Ich weiss nicht ob ich es richtig verstanden habe aber ich möchte mit
sp_addextendedproperty eine Beschreibung zu einer mssql Tabelle hinzu fügen(also funktioniert auch)
kann ich diese Beschreibung der Tabelle dann wieder mit einem SQL string abfragen?
sprich ungefähr so
Liste alle meine mssql Tabellen auf mit der Beschreibung MeineBeschreibung(Spalte) - WertMeinerBeschreibung(Zeile)
also keine Datenabfrage sondern eher eine struckturelle Abfrage ähnlich
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE (TABLE_TYPE = 'BASE TABLE') ORDER BY TABLE_NAME
nur das ich eben zusätzlich meine Beschreibung dazu bekomme
Antworten
-
Hallo Michael,
INFORMATION_SCHEMA enthält nur die Basis-Daten (lt. ANSI-SQL), die erweiterten Eigenschaften gehören (u. a.) nicht dazu.
Die Informationen zu den unterschiedlichen Ebenen kannst Du über die Funktion sys.fn_listextendedproperty abrufen:
-- Listet die Einträge zu allen Tabellen eines Schemas (dbo) auf SELECT objname AS TableName, name AS PropertyName, value AS PropertValue FROM sys.fn_listextendedproperty (NULL, 'SCHEMA', 'dbo', 'TABLE', DEFAULT, DEFAULT, DEFAULT); -- Listet die Spalten-Einträge zu einer Tabelle (<Tabelle>) auf SELECT objname AS ColumnName, name AS PropertyName, value AS PropertValue FROM sys.fn_listextendedproperty (NULL, 'SCHEMA', 'dbo', 'TABLE', '<Tabelle>', 'COLUMN', DEFAULT);
Gruß Elmar
- Als Antwort markiert MCDPone Montag, 21. Oktober 2013 05:52
Alle Antworten
-
Hallo Michael,
INFORMATION_SCHEMA enthält nur die Basis-Daten (lt. ANSI-SQL), die erweiterten Eigenschaften gehören (u. a.) nicht dazu.
Die Informationen zu den unterschiedlichen Ebenen kannst Du über die Funktion sys.fn_listextendedproperty abrufen:
-- Listet die Einträge zu allen Tabellen eines Schemas (dbo) auf SELECT objname AS TableName, name AS PropertyName, value AS PropertValue FROM sys.fn_listextendedproperty (NULL, 'SCHEMA', 'dbo', 'TABLE', DEFAULT, DEFAULT, DEFAULT); -- Listet die Spalten-Einträge zu einer Tabelle (<Tabelle>) auf SELECT objname AS ColumnName, name AS PropertyName, value AS PropertValue FROM sys.fn_listextendedproperty (NULL, 'SCHEMA', 'dbo', 'TABLE', '<Tabelle>', 'COLUMN', DEFAULT);
Gruß Elmar
- Als Antwort markiert MCDPone Montag, 21. Oktober 2013 05:52
-
Alternativ kannst Du die Werte auch über sys.extended_properties (Transact-SQL) abfragen, nur musst Du dann abhängig von der "class" Dein SQL Statement aufbauen, zum Beispiel für Schema's:
SELECT * FROM sys.extended_properties AS EP INNER JOIN sys.schemas AS SCH ON EP.class_desc = N'SCHEMA' AND EP.major_id = SCH.schema_id
Siehe auch Viewing Extended PropertiesOlaf Helper
[ Blog] [ Xing] [ MVP]