如何从表中获取列键约束:SQL中的INFORMATION_SCHEMA?

时间:2019-07-05 21:29:24

标签: sql sql-server

如何从表中获取列键约束:SQL中的INFORMATION_SCHEMA?

我只需要获取包含主键,外键以及这些详细信息的列。

SELECT      COLUMN_NAME AS COLUMNNAME,  
            DATA_TYPE AS DATATYPE,
            CHARACTER_MAXIMUM_LENGTH,
            IS_NULLABLE
FROM        INFORMATION_SCHEMA.COLUMNS  
WHERE       TABLE_NAME = 'My_Table_Name'

2 个答案:

答案 0 :(得分:1)

这可能会帮助...

    USE AdventureWorks2012
    GO
    SELECT t.CONSTRAINT_NAME,t.TABLE_NAME,t.CONSTRAINT_TYPE,c.COLUMN_NAME
    FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS t
    INNER JOIN INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE c ON t.CONSTRAINT_NAME = c.CONSTRAINT_NAME
   -- WHERE    t.TABLE_NAME = 'ProductVendor'
        -- AND t.CONSTRAINT_TYPE = 'PRIMARY KEY'

enter image description here

答案 1 :(得分:-1)

尝试sys.indexes和sys.index_columns

在此之前,此问题已得到很好的回答: List of all index & index columns in SQL Server DB