sql-server – SQL Server 2008:找出表中的主键/外键?
发布时间:2021-04-01 16:48:40 所属栏目:编程 来源:网络整理
导读:有谁知道我怎么看哪个是首要表中的外键? 编辑:感激全部的回覆.我正在探求一个SQL查询来做到这一点.此刻我正在玩写一个器材,可以列出全部数据库表并表现列.我还要表现哪些键是主键. 这就是我读出表目次的方法: const string sqlSelectTable = "SELECT TABLE
|
有谁知道我怎么看哪个是首要&表中的外键? 编辑:感激全部的回覆.我正在探求一个SQL查询来做到这一点.此刻我正在玩写一个器材,可以列出全部数据库表并表现列.我还要表现哪些键是主键. 这就是我读出表目次的方法: const string sqlSelectTable = "SELECT TABLE_CATALOG,TABLE_SCHEMA,TABLE_NAME,TABLE_TYPE " +
"FROM INFORMATION_SCHEMA.TABLES " +
"WHERE TABLE_TYPE = 'BASE TABLE' " +
"ORDER BY TABLE_TYPE,TABLE_NAME";
这就是我怎样得到有关列的信息: const string sqlSelectTable =
"SELECT COLUMN_NAME,DATA_TYPE,CHARACTER_MAXIMUM_LENGTH " +
"FROM INFORMATION_SCHEMA.COLUMNS " +
"WHERE (TABLE_NAME = @TABLE_NAME) " +
"ORDER BY ORDINAL_POSITION";
我是否必需建设内部联接,以便查察哪些列是主键? 干杯 办理要领对付每个表上的主键,您可以行使此查询:SELECT
kc.name,c.NAME
FROM
sys.key_constraints kc
INNER JOIN
sys.index_columns ic ON kc.parent_object_id = ic.object_id
INNER JOIN
sys.columns c ON ic.object_id = c.object_id AND ic.column_id = c.column_id
WHERE
kc.type = 'PK'
对付外键,我信托这个查询应该为您提供须要的信息: SELECT
OBJECT_NAME(parent_object_id) 'Parent table',c.NAME 'Parent column name',OBJECT_NAME(referenced_object_id) 'Referenced table',cref.NAME 'Referenced column name'
FROM
sys.foreign_key_columns fkc
INNER JOIN
sys.columns c
ON fkc.parent_column_id = c.column_id
AND fkc.parent_object_id = c.object_id
INNER JOIN
sys.columns cref
ON fkc.referenced_column_id = cref.column_id
AND fkc.referenced_object_id = cref.object_id
渣子 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


