如何确定列是否在其表的主键中? (SQL Server) [英] How do I determine if a column is in the primary key of its table? (SQL Server)
本文介绍了如何确定列是否在其表的主键中? (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屋!
查看全文