T-SQL中找出一个表的所有外键关联表

二种方法(下例中表名为T_Work)

1.SQL查询系统表

SELECT 主键列ID=b.rkey
,主键列名=(SELECT name FROM syscolumns WHERE colid=b.rkey AND id=b.rkeyid)
,外键表ID=b.fkeyid
,外键表名称=object_name(b.fkeyid)
,外键列ID=b.fkey
,外键列名=(SELECT name FROM syscolumns WHERE colid=b.fkey AND id=b.fkeyid)
,级联更新=ObjectProperty(a.id,'CnstIsUpdateCascade')
,级联删除=ObjectProperty(a.id,'CnstIsDeleteCascade')
FROM sysobjects a
join sysforeignkeys b on a.id=b.constid
join sysobjects c on a.parent_obj=c.id
where a.xtype='f' AND c.xtype='U'
and object_name(b.rkeyid)='T_Work'

2.系统存储过程

exec sp_helpconstraint T_Work

 

推荐这些文章:

sqlserver关联表

select object_name(ref.fkeyid) as foreigntable, col_name(ref.fkeyid, fk.fkey) as foreignkey, object_name(ref.rkeyid) as primarytable, col_name(ref.rkeyid, fk...

数据库外键关联关系查询

相信许多小伙伴都遇到过删除某个表的时候出现外键约束的问题,在这里给大家提供一个查询本表外键关系的sql,如果本表被很多表引为外键,这时候笔者建议大家做假删除
select zjb.name as '主键表', wjb.name as '外键表',zml.name as '外键字段'from sys.foreign_key_columns...

查看表的主外键关联关系

select a.owner, --主键拥有者 a.table_name, --主键表 b.column_name, --主键列 c.OWNER, --外键拥有者 c.table_name, --外键表 d.column_name --外键列 fr...

对于三表关联使用left_join

学生表信息student:sid ,sname,classid;
老师表teacher:tid,tname
课程表course:cid,cname,teacher_id
成绩表score:sid,student_id,corse_id,core_nuber
select score.sid ,course.name,student.na...

sql update多表关联更新

-- 方法1
UPDATE b
SET b.status= 1
FROM
t_bed_adapter b, t_adapter a
WHERE
a.id = b.adapter_id AND a.dept_code = '214'

-- 方法2
UPDATE b
SET b.status = ...

update和left join连用(多表关联更新)

参考下面:

update student s

left join class c

on

d.index_id = c.id

set d.number =0,d.age=0

WHERE c.type='all'

...

mysql 通过id获取下级所有节点(包含自身)或者获取所有上级节点(包含自身)

获取所有上级节点(包含自身)

SELECT
group_concat(T1._id) as id
FROM
(
SELECT
@r AS _id,
( SELECT @r := parent_id FROM table_name WHERE id = _id ) AS parent_id,
...

SQL Server 2008获取一个表的字段,类型,长度,是否主键,是否为空,注释等信息

SELECT

[表名]=
case
when
a.colorder=1
then
d.
name
else
''
end
,

[表说明]=
case
when
a.colorder=1
...

sql server表外键查询

--本表外键
SELECT
f.name AS foreign_key_name
,OBJECT_NAME(f.parent_object_id) AS table_name
,COL_NAME(fc.parent_object_id, fc.parent_column_id) AS constraint_column_name
,O...

查询记录数大于10万条的所有表的表名称

select b.name,a.rowcnt from sysindexes a,sysobjects b
where a.id=b.id and a.indid<2 and b.xtype='u' and rowcnt>100000

 

...

文章标题:T-SQL中找出一个表的所有外键关联表
文章链接:https://www.dianjilingqu.com/321.html
本文章来源于网络,版权归原作者所有,如果本站文章侵犯了您的权益,请联系我们删除,联系邮箱:saisai#email.cn,感谢支持理解。
THE END
< <上一篇
下一篇>>