Ich habe eine Abfrage zum Abrufen von Informationen über benutzerdefinierte Tabellenarten.Wie kann ich meine aktuelle Abfrage zu benutzerdefinierten Tabellenarten abschließen und Schema, IsIdentity, IsPrimaryKey und ... erhalten?
Ich brauche diese Abfrage zu vervollständigen, indem Sie die folgenden Spalten hinzugefügt:
Die Abfrage:
SELECT o.name AS TableName ,
c.name AS ColumnName ,
c.isnullable AS [IsNullable] ,
t.name AS [DataType] ,
t.[length] AS [MaxLength] ,
t.prec AS [Precision]
FROM syscolumns c
INNER JOIN sysobjects o ON o.id = c.id
LEFT JOIN systypes t ON t.xtype = c.xtype
WHERE c.id IN (SELECT type_table_object_id
FROM sys.table_types)
ORDER BY o.name ,
c.name;
Und ich habe noch eine Frage über die obige Abfrage.
Ich habe benutzerdefinierte Tabelle Typen mit dbo.MyType
als Name, aber in dieser Abfrage zeigt es mir 'TT_MyType_37C5420D'.
Wie kann ich den richtigen Namen bekommen?
In SQL Server ** 2005 ** und neuere, sollten Sie das 'sys' Schema verwenden, wie' sys.columns' statt 'syscolumns' (und dasselbe gilt für' sys.tables', 'sys.types' usw.) –
@marc_s Können Sie meine Abfrage umschreiben? – Hamed