在SQL中检索列信息(复合键),可以使用以下方法:
INFORMATION_SCHEMA.KEY_COLUMN_USAGE
表查询:SELECT CONSTRAINT_NAME, TABLE_NAME, COLUMN_NAME, ORDINAL_POSITION, POSITION_IN_UNIQUE_CONSTRAINT
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE TABLE_NAME = 'your_table_name' AND CONSTRAINT_NAME = 'your_constraint_name';
INFORMATION_SCHEMA.TABLE_CONSTRAINTS
和INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE
表查询:SELECT tc.CONSTRAINT_NAME, tc.TABLE_NAME, ccu.COLUMN_NAME, ccu.ORDINAL_POSITION, ccu.POSITION_IN_UNIQUE_CONSTRAINT
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS AS tc
JOIN INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE AS ccu
ON tc.CONSTRAINT_NAME = ccu.CONSTRAINT_NAME
WHERE tc.TABLE_NAME = 'your_table_name' AND tc.CONSTRAINT_TYPE = 'PRIMARY KEY';
sp_pkeys
存储过程查询:EXEC sp_pkeys 'your_table_name';
其中,your_table_name
是要查询的表名,your_constraint_name
是要查询的约束名。
在查询结果中,COLUMN_NAME
列表示复合键中的列名,ORDINAL_POSITION
列表示列在复合键中的位置,POSITION_IN_UNIQUE_CONSTRAINT
列表示列在唯一约束中的位置。
领取专属 10元无门槛券
手把手带您无忧上云