Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mendapatkan Kunci Utama Jadual dalam Pelayan SQL?

Bagaimana untuk Mendapatkan Kunci Utama Jadual dalam Pelayan SQL?

Barbara Streisand
Barbara Streisandasal
2025-01-04 14:43:43259semak imbas

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

Mendapatkan Kekunci Utama Jadual dalam Pelayan SQL Menggunakan SQL Query

Dalam Pelayan SQL, terdapat beberapa pendekatan untuk mendapatkan kunci utama jadual tertentu. Mari kita terokainya:

Pendekatan 1:

Pertanyaan ini memilih nama lajur yang ditetapkan sebagai kunci utama menggunakan fungsi OBJECTPROPERTY:

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'

Pendekatan 2:

Sebagai alternatif, anda boleh menggunakan fungsi sistem yang dipanggil sys.primary_keys untuk mendapatkan semula maklumat kunci utama:

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

Perbandingan dengan MySQL Query:

Perhatikan bahawa pertanyaan MySQL yang disediakan berbeza sedikit daripada pendekatan SQL Server. Dalam SQL Server, anda tidak boleh menggunakan pernyataan SHOW KEYS untuk menunjukkan nama_kunci tertentu secara eksplisit. Sebaliknya, anda perlu menentukan CONSTRAINT_NAME bagi kekangan kunci utama menggunakan OBJECTPROPERTY.

Pertanyaan Ideal untuk Kedua-dua MySQL dan SQL Server:

Malangnya, tiada SQL langsung pertanyaan yang berfungsi dengan lancar untuk kedua-dua MySQL dan SQL Server untuk mendapatkan kunci utama. Walau bagaimanapun, anda boleh menggunakan pertanyaan dinamik yang menanyakan jadual sistem yang berbeza berdasarkan jenis pangkalan data, seperti yang ditunjukkan di bawah:

-- 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;

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Kunci Utama Jadual dalam Pelayan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn