简单的问题是,如何使用T-SQL列出表的主键?我知道如何获取表上的索引,但不记得如何获取主键。
发布于 2008-09-18 19:29:07
SELECT Col.Column_Name from
INFORMATION_SCHEMA.TABLE_CONSTRAINTS Tab,
INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE Col
WHERE
Col.Constraint_Name = Tab.Constraint_Name
AND Col.Table_Name = Tab.Table_Name
AND Constraint_Type = 'PRIMARY KEY'
AND Col.Table_Name = '<your table name>'
发布于 2015-09-11 04:26:24
现在通常推荐的做法是在SQL Server中通过INFORMATION_SCHEMA
使用sys.*
视图,因此除非您计划迁移数据库,否则我将使用这些视图。下面是如何使用sys.*
视图完成此操作:
SELECT
c.name AS column_name,
i.name AS index_name,
c.is_identity
FROM sys.indexes i
inner join sys.index_columns ic ON i.object_id = ic.object_id AND i.index_id = ic.index_id
inner join sys.columns c ON ic.object_id = c.object_id AND c.column_id = ic.column_id
WHERE i.is_primary_key = 1
and i.object_ID = OBJECT_ID('<schema>.<tablename>');
发布于 2008-09-18 19:31:08
使用MS SQL Server时,您可以执行以下操作:
--List all tables primary keys
select * from information_schema.table_constraints
where constraint_type = 'Primary Key'
如果需要特定表,还可以根据table_name列进行筛选。
https://stackoverflow.com/questions/95967
复制相似问题