[英]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
并不是您要找的东西,但是您可以尝试一下:
只是一个性能说明-使用sys表的选择比使用INFORMATION_SCHEMA视图的选择要快几个数量级
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.