Ich habe eine SQL Server-Datenbank und möchte wissen, welche Spalten und Typen sie hat. Ich würde dies lieber über eine Abfrage tun, als eine grafische Benutzeroberfläche wie Enterprise Manager zu verwenden. Gibt es eine Möglichkeit, dies zu tun?
sql
sql-server
marc_s
quelle
quelle
Antworten:
Sie können die gespeicherte Prozedur sp_columns verwenden:
quelle
select
unten aufgeführten Lösungen eignen sich viel besser für Benutzer von sqlcmd.Es gibt einige Methoden, um Metadaten zu einer Tabelle abzurufen:
Gibt mehrere Ergebnismengen zurück, die die Tabelle, ihre Spalten und Einschränkungen beschreiben.
Die
INFORMATION_SCHEMA
Ansichten geben Ihnen die gewünschten Informationen, obwohl Sie die Ansichten leider abfragen und manuell verbinden müssen.quelle
@
Syntax ist jedoch falsch.@tablename
es eine Variable im Beispiel. Das sp funktioniert in beide Richtungen, entweder mit einer Zeichenfolge oder dem 'einfachen' Tabellennamen (exec sp_help Employees
oderexec sp_help 'Employees'
)execute sp_help 'db.sch.your_table
Nur für den Fall, dass Sie keinen gespeicherten Prozess verwenden möchten, finden Sie hier eine einfache Abfrageversion
quelle
Sie können Folgendes verwenden
sp_help
tablename
Beispiel: sp_help Kunde
ODER Verwenden Sie die Verknüpfung
Beispiel: Kunde Drücken Sie Alt + F1
quelle
Ctrl+W
kann verwendet werden, um die Auswahl zu erweitern und den gesamten Namen auszuwählen.Verwenden Sie diese Abfrage
quelle
Zusätzlich zu den in anderen Antworten gezeigten Möglichkeiten können Sie verwenden
Dies gibt Ihnen den Namen jeder Spalte ohne Ergebnisse und wird fast sofort mit minimalem Aufwand abgeschlossen.
quelle
Bitte verwenden Sie die folgende SQL-Abfrage; Das hat bei meinem Fall funktioniert.
quelle
Wählen Sie einfach Tabelle und drücken Sie Alt+ F1,
Es werden alle Informationen zu Tabellen wie Spaltenname, Datentyp, Schlüssel usw. angezeigt.
quelle
Ich habe ein SQL * plus DESC (RIBE) wie select (zeigt auch die Spaltenkommentare an) in t-sql geschrieben:
Die oben erwähnte Auswahl kann in einer vom System gekennzeichneten gespeicherten Prozedur verwendet werden und kann auf einfache Weise aus jeder Datenbank Ihrer Instanz aufgerufen werden:
So führen Sie den Prozedurtyp aus:
Wenn Sie eine Beschreibung eines Objekts der aktuellen Datenbank (und des Schemas) erhalten möchten, geben Sie einfach Folgendes ein:
Da sp_desc eine vom System markierte Prozedur ist, können Sie auch den Befehl exec verlassen (ohnehin nicht empfohlen):
quelle
Der SQL Server, der dem
describe
Befehl von Oracle entspricht, ist der gespeicherte Prozesssp_help
Der
describe
Befehl gibt Ihnen Informationen zu Spaltennamen, -typen, -länge usw. an.Angenommen, Sie möchten in SQL Server eine Tabelle 'mytable' im Schema 'myschema' in der Datenbank 'mydb' beschreiben. Sie können Folgendes tun:
quelle
Sie können den sp_help 'TableName' verwenden.
quelle
Das Problem mit diesen Antworten ist, dass Sie die wichtigsten Informationen vermissen. Dies ist zwar etwas chaotisch, aber es handelt sich um eine schnelle Version, die ich entwickelt habe, um sicherzustellen, dass sie dieselben Informationen enthält, die MySQL Describe anzeigt.
quelle
Dies ist der Code, den ich in
EntityFramework Reverse POCO Generator
( hier verfügbar ) verwende.Tabelle SQL:
Fremdschlüssel-SQL:
Erweiterte Eigenschaften:
quelle
verwenden
Keine andere Lösung hat bei mir funktioniert.
quelle
Ich mag dieses Format:
Also habe ich das benutzt:
quelle
Beispielausgabe
quelle
Wenn Sie FirstResponderKit vom Brent Ozar-Team verwenden, können Sie diese Abfrage auch ausführen:
Es werden alle Informationen zur Tabelle zurückgegeben:
Natürlich ist es kein System und kein so universeller STP wie sp_help oder sp_columns , aber es gibt alle möglichen Informationen über Ihre Tabelle zurück, und ich denke, es lohnt sich, sie in Ihrer Umgebung zu erstellen und hier zu erwähnen.
quelle
Doppelklicken Sie einfach auf den Tabellennamen und drücken Sie Alt + F1
quelle
quelle