Heim >Datenbank >MySQL-Tutorial >Wie finde ich den Primärschlüssel einer Tabelle in SQL Server mithilfe von SQL-Abfragen?

Wie finde ich den Primärschlüssel einer Tabelle in SQL Server mithilfe von SQL-Abfragen?

DDD
DDDOriginal
2025-01-05 19:28:39516Durchsuche

How to Find a Table's Primary Key in SQL Server Using SQL Queries?

Ermitteln des Primärschlüssels einer Tabelle mithilfe von SQL-Abfragen in SQL Server

In SQL Server erfordert das Abrufen des Primärschlüssels einer Tabelle mithilfe einer SQL-Abfrage einen geringfügigen Aufwand anderer Ansatz als MySQL. Entdecken Sie die folgenden Abfrageoptionen, um Primärschlüsselinformationen abzurufen:

SQL Server-Abfrage:

Eine häufig verwendete Abfrage für SQL Server ist:

SELECT name AS PrimaryKey
FROM sysobjects
WHERE xtype = 'PK' AND name IN (
    SELECT name 
    FROM sysindexes 
    WHERE id = object_id(TableName)
)

Ersetzen Sie TableName durch den tatsächlichen Tabellennamen in der Abfrage.

Ein anderer SQL Server Abfrage:

Eine alternative Abfrage für SQL Server finden Sie unten:

SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE OBJECTPROPERTY(OBJECT_ID(CONSTRAINT_SCHEMA + '.' + QUOTENAME(CONSTRAINT_NAME)), 'IsPrimaryKey') = 1
AND TABLE_NAME = 'TableName' AND TABLE_SCHEMA = 'Schema'

Ersetzen Sie TableName und Schema erneut durch entsprechende Werte.

Universal Abfrage für MySQL und SQL Server (nicht empfohlen):

Es gibt zwar kein direktes Äquivalent der in der Frage erwähnten MySQL-Abfrage für Mit SQL Server kann eine komplexere Abfrage verwendet werden, die in beiden Datenbanksystemen funktionieren sollte:

SELECT T.COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS AS T
LEFT JOIN 
    (SELECT DISTINCT C.TABLE_NAME, C.COLUMN_NAME
    FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS U
    JOIN INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE AS C
        ON U.TABLE_SCHEMA = C.TABLE_SCHEMA
        AND U.TABLE_NAME = C.TABLE_NAME
        AND U.CONSTRAINT_NAME = C.CONSTRAINT_NAME) AS S
    ON T.TABLE_NAME = S.TABLE_NAME AND T.COLUMN_NAME = S.COLUMN_NAME
WHERE T.TABLE_SCHEMA = 'TableName_Schema' AND T.TABLE_NAME = 'TableName'

Obwohl diese Abfrage möglicherweise sowohl in MySQL als auch in SQL Server funktioniert, ist sie weniger effizient und wird für eine optimale Leistung nicht empfohlen.

Das obige ist der detaillierte Inhalt vonWie finde ich den Primärschlüssel einer Tabelle in SQL Server mithilfe von SQL-Abfragen?. 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