我知道获取数据库表名的查询是:
SELECT *
FROM information_schema.tables
WHERE table_type = 'BASE TABLE'
如果主键由多列组成,如何获取表?或者获取特定表的复合主键?
答案 0 :(得分:1)
如果我理解得很好,你可以选择TSQL。
步骤:
exec sp_pkeys 'table', 'schema'
查看:
此查询将返回具有唯一约束的相关数据e foreign_keys以及
select * from information_schema.key_column_usage
where table_schema = 'schema' and table_name = 'table'
如果您想获得与主键相关的列,您可以尝试类似下面的内容。我认为它可以随着数据库版本而改变,我现在不确定。
select *
from information_schema.key_column_usage as k
where table_schema = 'schema' and table_name = 'table'
and constraint_name = (
select name
from sysobjects as u
where k.table_name = object_name(u.parent_obj)
and u.xtype = 'PK')
order by table_schema, table_name, ordinal_position
如果不是答案,请提供更多详细信息。
答案 1 :(得分:0)
试试这个:
sp_helpindex 'YourTable'