Abrufen von Spalteninformationen, Datentypen, Nulleinschränkungen und Primärschlüsseln in SQL Server
In SQL Server können Sie detaillierte Informationen zu abrufen die Spalten in einer bestimmten Tabelle, einschließlich ihrer Datentypen, Länge, NULL-Zulässigkeit und ob es sich um Primärschlüssel handelt. So können Sie dies erreichen:
-
Erforderliche Spalten auswählen:
Beginnen Sie Ihre Abfrage, indem Sie die folgenden Spalten auswählen:
- Spaltenname: Verwenden Sie c.name, um den Spaltennamen abzurufen.
- Datentyp: Verwenden Sie t.name, um die Daten abzurufen Typ der Spalte.
- Länge: Für Zeichenfolgen und andere Datentypen mit einer definierten Länge verwenden Sie c.max_length.
- Präzision und Skalierung: Für numerische Datentypen schließen Sie c.precision und c ein .scale.
- Nullable-Status: Verwenden Sie c.is_nullable, um zu bestimmen, ob die Spalte Null zulässt Werte.
-
Erforderliche Tabellen verbinden:
Verknüpfen Sie die Tabelle sys.columns (Alias c) mit der Tabelle sys.types (Alias t). auf ihrer user_type_id, um spaltenspezifische Informationen abzurufen.
-
Überprüfen Sie den Primärschlüssel Einschränkungen:
Optional können Sie durch Verknüpfung mit den Tabellen sys.index_columns (ic) und sys.indexes (i) nach Primärschlüsseleinschränkungen suchen. Wenn eine Spalte einen Index hat, bei dem is_primary_key auf 1 gesetzt ist, handelt es sich um einen Primärschlüssel. Verwenden Sie ISNULL(i.is_primary_key, 0), um Fälle zu behandeln, in denen die Spalte kein Primärschlüssel ist.
-
Nach Tabellennamen filtern:
Verwenden Sie WHERE c.object_id = OBJECT_ID(' YourTableName‘), um die Ergebnisse für eine bestimmte Tabelle zu filtern, wobei „YourTableName“ durch die tatsächliche Tabelle ersetzt wird Name.
-
Tabellennamen ersetzen:
Für Schemata ersetzen Sie „YourTableName“ durch „YourSchemaName.YourTableName“.
Beispiel Abfrage:
SELECT
c.name AS 'Column Name',
t.Name AS 'Data type',
c.max_length AS 'Max Length',
c.precision,
c.scale,
c.is_nullable AS 'Null?',
ISNULL(i.is_primary_key, 0) AS 'Primary Key'
FROM
sys.columns c
INNER JOIN
sys.types t ON c.user_type_id = t.user_type_id
LEFT OUTER JOIN
sys.index_columns ic ON ic.object_id = c.object_id AND ic.column_id = c.column_id
LEFT OUTER JOIN
sys.indexes i ON ic.object_id = i.object_id AND ic.index_id = i.index_id
WHERE
c.object_id = OBJECT_ID('YourTableName')
Ausgabe:
Die Abfrage gibt eine Tabelle mit den folgenden Informationen zurück:
Column Name |
Data type |
Max Length |
Null? |
Primary Key |
Das obige ist der detaillierte Inhalt vonWie rufe ich Spalteninformationen, Datentypen und Primärschlüssel in SQL Server ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn