SQLServer 脚本查询一个数据库内所有表的外键关系:父表是谁,子表是谁,列,成功追加,不然浪费
1个回答
展开全部
SELECT
SO.name 表名,
SC.name 表列名,
SC.colid 索引,
ST.name 类型
FROM
sysobjects SO, -- 对象表
syscolumns SC, -- 列名表
systypes ST -- 数据类型表
WHERE
SO.id = SC.id
AND SO.xtype = 'U' -- 类型U表示表,V表示视图
AND SO.status >= 0 -- status >= 0 为非系统对象
AND SC.xtype = ST.xusertype
AND SO.name = 'T_Employee' -- 某张特定表
ORDER BY
SO.name, SC.colorder -- 按表名、列名排序
SO.name 表名,
SC.name 表列名,
SC.colid 索引,
ST.name 类型
FROM
sysobjects SO, -- 对象表
syscolumns SC, -- 列名表
systypes ST -- 数据类型表
WHERE
SO.id = SC.id
AND SO.xtype = 'U' -- 类型U表示表,V表示视图
AND SO.status >= 0 -- status >= 0 为非系统对象
AND SC.xtype = ST.xusertype
AND SO.name = 'T_Employee' -- 某张特定表
ORDER BY
SO.name, SC.colorder -- 按表名、列名排序
更多追问追答
追问
查出一列为空,数据库中有很多外键,这个结果不对,刚才试过下面脚本可行
select object_name(parent_object_id) as 父表,OBJECT_NAME(referenced_object_id) as 子表代from sys.foreign_key_columns 因为一个父表有很多子表,你 能帮我改下代码,实现一行第一个为父表,后面依次为子表么
追答
好的,我试试看。我比较喜欢研究数据库。稍等一下。还有哥们,你提问的时候,给点分数。要不然,真的没人看。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |