我想知道我在sql中发出主键的列名称?语法是什么?

我想知道我在sql中发出主键的列名称?语法是什么?,sql,Sql,想知道我在sql中发出主键的列名称吗?语法是什么 USE databasename; GO SELECT i.name AS IndexName, OBJECT_NAME(ic.OBJECT_ID) AS TableName, COL_NAME(ic.OBJECT_ID,ic.column_id) AS ColumnName FROM sys.indexes AS i INNER JOIN sys.index_columns AS ic ON

想知道我在sql中发出主键的列名称吗?语法是什么

USE databasename; 

GO
 SELECT i.name AS IndexName, OBJECT_NAME(ic.OBJECT_ID) AS TableName, 
           COL_NAME(ic.OBJECT_ID,ic.column_id) AS ColumnName
    FROM sys.indexes AS i
    INNER JOIN sys.index_columns AS ic
    ON i.OBJECT_ID = ic.OBJECT_ID
    AND i.index_id = ic.index_id
    WHERE i.is_primary_key = 1
希望这对你有帮助


希望这对您有所帮助。

您使用的是什么数据库系统?您使用的是什么数据库系统?
错误代码:1146。表'sys.indexes'不存在
…好的,也许您使用了另一个数据库,但我得到:
错误:关系“sys.indexes”不存在第5行:来自sys.indexes AS I^SQL state:42P01字符:134
@Luuk您使用SQL吗?我可以在sql Server中取消上述查询。somegeek:您的解决方案仅适用于“Microsoft sql Server”,来自@Shaifat的解决方案适用于更多服务器(以及MSSQL Server上的als)
错误代码:1146。表'sys.indexes'不存在
…好的,也许您使用了另一个数据库,但我得到:
错误:关系“sys.indexes”不存在第5行:来自sys.indexes AS I^SQL state:42P01字符:134
@Luuk您使用SQL吗?我可以在sql Server中取消上述查询。somegeek:您的解决方案仅适用于“Microsoft sql Server”,来自@Shaifat的解决方案适用于更多服务器(以及MSSQL Server上的als)
SELECT DISTINCT TABLE_NAME ,column_name
FROM INFORMATION_SCHEMA.key_column_usage
WHERE TABLE_SCHEMA IN ('*your_schema_name*');