[英]How to get all primary key with a specific name?
I'm trying to get all primary key of a database when their name are exactly = "ID"
我试图获取数据库的所有主键,但它们的名称exactly = "ID"
My goal is to retrieve all of this keys for a refactoring.我的目标是检索所有这些键以进行重构。 I have tried with the table information_schema
but cannot achieve my goal by myself.我已经尝试过使用表information_schema
但我自己无法实现我的目标。
The most prefered output should be:最喜欢的输出应该是:
SCHEMA_NAME | TABLE_NAME | PRIMARY_KEY_NAME
--------------------------------------------------------
... | ... | ID
... | ... | ID
... | ... | ID
... | ... | ID
... | ... | ID
... | ... | ID
... | ... | ID
Use INFORMATION_SCHEMA.TABLE_CONSTRAINTS
使用INFORMATION_SCHEMA.TABLE_CONSTRAINTS
SELECT SCHEMA_NAME = TABLE_SCHEMA,
TABLE_NAME,
PRIMARY_KEY_NAME = CONSTRAINT_NAME
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE CONSTRAINT_TYPE = 'PRIMARY KEY'
AND CONSTRAINT_NAME = 'ID'
or use sys.key_constraints
或使用sys.key_constraints
SELECT SCHEMA_NAME= s.NAME,
TABLE_NAME = Object_name(kc.parent_object_id),
PRIMARY_KEY_NAME = kc.NAME
FROM sys.key_constraints kc
JOIN sys.schemas s
ON kc.schema_id = s.schema_id
WHERE type = 'pk'
AND kc.NAME = 'ID'
SELECT Col.Column_Name, col.CONSTRAINT_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.CONSTRAINT_NAME like '%adhoc%'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.