如何获取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' (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |