如何确定列是否在其表的主键中? (SQL Server) [英] How do I determine if a column is in the primary key of its table? (SQL Server)

查看:45
本文介绍了如何确定列是否在其表的主键中? (SQL Server)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我当前正在使用...

I am currently using...

select Table_Name, Column_name, data_type, is_Nullable
from information_Schema.Columns

...以确定用于生成数据访问层的给定数据库中列的信息。

...to determine information about columns in a given database for the purposes of generating a DataAccess Layer.

我可以从哪里检索有关这些列是否是表主键的参与者的信息?

推荐答案

这是一种方法(将'keycol'替换为您要搜索
的列名):

Here is one way (replace 'keycol' with the column name you are searching for):

SELECT  K.TABLE_NAME ,
    K.COLUMN_NAME ,
    K.CONSTRAINT_NAME
FROM    INFORMATION_SCHEMA.TABLE_CONSTRAINTS AS C
        JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS K ON C.TABLE_NAME = K.TABLE_NAME
                                                         AND C.CONSTRAINT_CATALOG = K.CONSTRAINT_CATALOG
                                                         AND C.CONSTRAINT_SCHEMA = K.CONSTRAINT_SCHEMA
                                                         AND C.CONSTRAINT_NAME = K.CONSTRAINT_NAME
WHERE   C.CONSTRAINT_TYPE = 'PRIMARY KEY'
        AND K.COLUMN_NAME = 'keycol';

这篇关于如何确定列是否在其表的主键中? (SQL Server)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆