繁体   English   中英

请告诉我如何在SQL Server 2005中获取主键名称

[英]Please tell me how to get primary key name in SQL Server 2005

我需要一个表的主键名和主键列名,请告诉我应该写什么查询。

declare @tableName as nvarchar(100)
set @tableName = 'table'

select i.name, c.name 
from sys.index_columns ic 
    join sys.indexes i on ic.index_id=i.index_id
    join sys.columns c on c.column_id=ic.column_id
where 
    i.[object_id] = object_id(@tableName) and 
    ic.[object_id] = object_id(@tableName) and 
    c.[object_id] = object_id(@tableName) and
    is_primary_key = 1

这是另一个使用INFORMATION_SCHEMA视图的选项

SELECT 
    cu.Table_Catalog,
    cu.Table_Schema,
    cu.table_name,
    cu.Constraint_name  ,
    cu.column_name

FROM 
    sys.indexes si
    inner join  INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE cu
    on si.name = cu.constraint_name
WHERE 
    is_primary_key = 1

并不是您要找的东西,但是您可以尝试一下:

SQL 2000:T-SQL获取表的外键关系

只是一个性能说明-使用sys表的选择比使用INFORMATION_SCHEMA视图的选择要快几个数量级

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM