在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中文網其他相關文章!