加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

如何获取SQLSERVER所有表的外键关系参数-MS-SQLServer/基础类

发布时间:2020-12-12 14:38:40 所属栏目:MsSql教程 来源:网络整理
导读:通过下列查询可得到关系的表名和列名 select object_name(A.parent_obj) as 表名? ?,col_name(A.parent_obj,B.fkey) as 列名 ? ?,object_name(B.rkeyid) as 引用表名? ?,col_name(B.rkeyid,B.rkey) as 引用列名? from sysobjects A? join sysforeignkeys B o
通过下列查询可得到关系的表名和列名
select object_name(A.parent_obj) as 表名?
?,col_name(A.parent_obj,B.fkey) as 列名 ?
?,object_name(B.rkeyid) as 引用表名?
?,col_name(B.rkeyid,B.rkey) as 引用列名?
from sysobjects A?
join sysforeignkeys B on A.id=B.constid
我想知道更细的关系设置情况,如何用SELECT获取如下具体的参数:
INSERT 和 UPDATE 规范中的更新规则和删除规则参数(如:不执行任何操作/级联/设置 Null/设置默认值)
强制外键约束的参数为是或否
强制用于复制的参数为是或否 ------回答---------
------其他回答(5分)---------
SQL code
    
    
     
     -----------------查询一个表的所有外键
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)='tb'
    
    
------其他回答(15分)---------
所有表
SQL code
    
    
     
     SELECT 主表名=object_name(b.rkeyid),主键列ID=b.rkey,'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' 
    
    

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读