首頁 > 資料庫 > mysql教程 > 如何使用 SQL 查詢在 SQL Server 中尋找表格的主鍵?

如何使用 SQL 查詢在 SQL Server 中尋找表格的主鍵?

DDD
發布: 2025-01-05 19:28:39
原創
492 人瀏覽過

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

在SQL Server 中使用SQL 查詢尋找表主鍵

在SQL Server 中,使用SQL 查詢獲取表的主鍵涉及一些輕微的問題與MySQL 相比,採用不同的方法。探索以下查詢選項來擷取主鍵資訊:

SQL Server 查詢:

SQL Server 的一個常用查詢是:

SELECT name AS PrimaryKey
FROM sysobjects
WHERE xtype = 'PK' AND name IN (
    SELECT name 
    FROM sysindexes 
    WHERE id = object_id(TableName)
)
登入後複製

將TableName替換為查詢中的實際表名。

另一個SQL Server查詢:

下面提供了SQL Server 的替代查詢:

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'
登入後複製

再次用適當的值替換TableName 和Schema。

通用MySQL 和SQL Server 查詢(不建議):

雖然有與SQL Server 問題中提到的MySQL 查詢沒有直接等效項,可以使用一種更複雜的查詢,該查詢應該在兩個資料庫系統中都有效:

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'
登入後複製

雖然此查詢可以在MySQL 和SQL Server中運行,效率較低,不建議最佳效能。

以上是如何使用 SQL 查詢在 SQL Server 中尋找表格的主鍵?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板