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