Heim > Datenbank > MySQL-Tutorial > Wie rufe ich den Primärschlüssel einer Tabelle in SQL Server ab?

Wie rufe ich den Primärschlüssel einer Tabelle in SQL Server ab?

Barbara Streisand
Freigeben: 2025-01-04 14:43:43
Original
278 Leute haben es durchsucht

How to Retrieve a Table's Primary Key in SQL Server?

Tabellen-Primärschlüssel in SQL Server mithilfe einer SQL-Abfrage abrufen

In SQL Server gibt es mehrere Ansätze, um den Primärschlüssel einer bestimmten Tabelle abzurufen. Lassen Sie uns sie untersuchen:

Ansatz 1:

Diese Abfrage wählt den Spaltennamen aus, der mit der OBJECTPROPERTY-Funktion als Primärschlüssel festgelegt ist:

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'
Nach dem Login kopieren

Ansatz 2:

Alternativ können Sie verwenden eine Systemfunktion namens sys.primary_keys zum Abrufen der Primärschlüsselinformationen:

SELECT
  name,
  primary_key_id,
  object_id
FROM
  sys.primary_keys
WHERE
  object_id = OBJECT_ID('TableName')
ORDER BY
  primary_key_id;
Nach dem Login kopieren

Vergleich mit MySQL-Abfrage:

Beachten Sie, dass sich die bereitgestellte MySQL-Abfrage geringfügig von der unterscheidet SQL Server-Ansätze. In SQL Server können Sie die SHOW KEYS-Anweisung nicht verwenden, um explizit einen bestimmten Schlüsselnamen anzugeben. Stattdessen müssen Sie den CONSTRAINT_NAME der Primärschlüsseleinschränkung mit OBJECTPROPERTY angeben.

Ideale Abfrage für MySQL und SQL Server:

Leider gibt es kein direktes SQL Abfrage, die sowohl für MySQL als auch für SQL Server nahtlos funktioniert, um den Primärschlüssel abzurufen. Sie können jedoch eine dynamische Abfrage verwenden, die verschiedene Systemtabellen basierend auf dem Datenbanktyp abfragt, wie unten gezeigt:

-- Check the database type
IF @@SERVERNAME LIKE '%MySQL%'
BEGIN
  SET @sqlQuery = 'SHOW KEYS FROM tablename WHERE Key_name = ''PRIMARY''';
END
ELSE
BEGIN
  SET @sqlQuery = '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''';
END

EXEC sp_executesql @sqlQuery;
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie rufe ich den Primärschlüssel einer Tabelle in SQL Server ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage