按名称列出所有主键约束,而不是系统名称

时间:2013-10-18 13:17:01

标签: sql sql-server-2008

我想列出数据库中的所有主键约束。我需要的信息是

  • 约束名称
  • 密钥的table.column
  • 列中的列的顺序位置

对于约束名称,我需要名称而不是系统生成的名称。

有没有人有问题那样做?

提前致谢,

2 个答案:

答案 0 :(得分:0)

怎么样:

SELECT kcu.CONSTRAINT_NAME, 
    kcu.TABLE_NAME, 
    kcu.COLUMN_NAME, 
    kcu.ORDINAL_POSITION  
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk
    JOIN  INFORMATION_SCHEMA.KEY_COLUMN_USAGE kcu 
        ON kcu.CONSTRAINT_NAME = pk.CONSTRAINT_NAME
    WHERE pk.CONSTRAINT_TYPE = 'PRIMARY KEY'

答案 1 :(得分:0)

是的,Damien_The_Unbeliever是正确的我不应该基于约束名称进行比较,而应该根据table.column名称进行比较。