首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何列出SQL Server表的主键?

如何列出SQL Server表的主键?
EN

Stack Overflow用户
提问于 2008-09-18 19:22:04
回答 20查看 214.8K关注 0票数 123

简单的问题是,如何使用T-SQL列出表的主键?我知道如何获取表上的索引,但不记得如何获取主键。

EN

回答 20

Stack Overflow用户

回答已采纳

发布于 2008-09-18 19:29:07

代码语言:javascript
复制
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>'
票数 160
EN

Stack Overflow用户

发布于 2015-09-11 04:26:24

现在通常推荐的做法是在SQL Server中通过INFORMATION_SCHEMA使用sys.*视图,因此除非您计划迁移数据库,否则我将使用这些视图。下面是如何使用sys.*视图完成此操作:

代码语言:javascript
复制
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>');
票数 35
EN

Stack Overflow用户

发布于 2008-09-18 19:31:08

使用MS SQL Server时,您可以执行以下操作:

代码语言:javascript
复制
--List all tables primary keys
select * from information_schema.table_constraints
where constraint_type = 'Primary Key'

如果需要特定表,还可以根据table_name列进行筛选。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/95967

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档