Einfache Frage, wie listet man den Primärschlüssel einer Tabelle mit T-SQL auf? Ich weiß, wie man Indizes für eine Tabelle erhält, kann mich aber nicht erinnern, wie man die PK erhält.
sql
sql-server
tsql
Swilliams
quelle
quelle
a
hat meine Tabelle einen zusammengesetzten Primärschlüssel von ?b
c
abc
Es wird allgemein empfohlen, die
sys.*
Ansichten jetztINFORMATION_SCHEMA
in SQL Server zu verwenden. Wenn Sie also nicht vorhaben, Datenbanken zu migrieren, würde ich diese verwenden. So würden Sie es mit densys.*
Ansichten machen:quelle
Dies ist eine Lösung, die nur sys- Tabellen verwendet.
Es listet alle Primärschlüssel in der Datenbank auf. Es gibt Schema, Tabellenname, Spaltenname und die richtige Spaltensortierreihenfolge für jeden Primärschlüssel zurück.
Wenn Sie den Primärschlüssel für eine bestimmte Tabelle erhalten möchten, dann müssen Sie Filter auf
SchemaName
undTableName
.IMHO, diese Lösung ist sehr allgemein gehalten und verwendet keine String-Literale, so dass sie auf jedem Computer ausgeführt werden kann.
quelle
Hier ist ein anderer Weg aus der Frage, wie man mit der SQL-Abfrage den Primärschlüssel der Tabelle abruft :
Es wird verwendet
KEY_COLUMN_USAGE
, um die Einschränkungen für eine bestimmte Tabelle zu bestimmen.Anschließend wird bestimmt, ob jeder ein Primärschlüssel ist
OBJECTPROPERTY(id, 'IsPrimaryKey')
quelle
Ich mag die INFORMATION_SCHEMA-Technik, aber eine andere, die ich verwendet habe, ist: exec sp_pkeys 'table'
quelle
Wenn Sie MS SQL Server verwenden, können Sie Folgendes tun:
Sie können auch nach der Spalte table_name filtern, wenn Sie eine bestimmte Tabelle möchten.
quelle
- Dies ist eine weitere modifizierte Version, die auch ein Beispiel für Co-Related Query ist
quelle
Dies sollte alle Einschränkungen (Primärschlüssel und Fremdschlüssel) auflisten und am Ende der Abfrage den Tabellennamen eingeben
Als Referenz lesen Sie bitte - http://blogs.msdn.com/b/sqltips/archive/2005/09/16/469136.aspx
quelle
quelle
Danke Guy.
Mit einer kleinen Abweichung habe ich es verwendet, um alle Primärschlüssel für alle Tabellen zu finden.
quelle
quelle
Dieser gibt Ihnen die Spalten, die PK sind.
quelle
Die gespeicherte Systemprozedur
sp_help
gibt Ihnen die Informationen. Führen Sie die folgende Anweisung aus:quelle
In der folgenden Abfrage werden die Primärschlüssel einer bestimmten Tabelle aufgelistet :
quelle
Ich erzähle eine einfache Technik, der ich folge
Führen Sie diesen Code als Abfrage aus. Erwähnen Sie Ihren Tabellennamen an der Stelle von Tabellenname, für den Sie den Primärschlüssel kennen möchten (vergessen Sie nicht die einfachen Anführungszeichen). Das Ergebnis wird wie im angehängten Bild angezeigt. Hoffe es wird dir helfen
quelle
Für eine durch Kommas getrennte Liste von Primärschlüsselspalten für einen bestimmten Tabellennamen und ein bestimmtes Schema:
quelle
Probieren Sie es aus:
quelle
Diese Version zeigt das Schema, den Tabellennamen und eine geordnete, durch Kommas getrennte Liste von Primärschlüsseln an. Object_Id () funktioniert nicht für Verbindungsserver, daher filtern wir nach dem Tabellennamen.
Ohne REPLACE (Si1.Column_Name, '', '') werden die XML-Tags zum Öffnen und Schließen von Column_Name in der Datenbank angezeigt, in der ich getestet habe. Ich bin mir nicht sicher, warum für die Datenbank ein Ersatz für 'Column_Name' erforderlich ist. Wenn jemand dies weiß, kommentieren Sie dies bitte.
Und das gleiche Muster mit Georges Abfrage:
quelle
Ich fand das nützlich, gibt eine Liste von Tabellen mit einer durch Kommas getrennten Liste der Spalten und dann auch eine durch Kommas getrennte Liste, welche der Primärschlüssel sind
quelle
quelle
Darf ich eine genauere einfache Antwort auf die ursprüngliche Frage unten vorschlagen?
Anmerkungen:
quelle
Könnte kürzlich veröffentlicht werden, aber hoffentlich hilft dies jemandem, die Primärschlüsselliste in SQL Server mithilfe dieser t-SQL-Abfrage anzuzeigen:
Mit dieser Abfrage können Sie die Liste aller Fremdschlüssel anzeigen, wenn Sie möchten:
quelle
Ich fand dies von meinem Freund sehr effektiv, wenn Sie nach allen Primärschlüsseln der Tabelle unter einem bestimmten Schema suchen.
quelle
Wenn Sie Ihr eigenes ORM erstellen oder Code aus einer bestimmten Tabelle generieren möchten, ist dies möglicherweise das, wonach Sie suchen:
So würde das Ergebnis aussehen:
quelle
Wenn Primärschlüssel und Typ benötigt werden, kann diese Abfrage hilfreich sein:
quelle