如何获取SQLSERVER所有表的外键关系参数-MS-SQLServer/基础类
2012-05-10 10:52
483 查看
通过下列查询可得到关系的表名和列名
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
------其他回答(15分)---------
所有表
SQL code
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 ,主键列名=(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'
相关文章推荐
- 如何获取SQLSERVER所有表的外键关系参数
- 收集到的:如何调用存储过程,有返回值的,有参数的,存储过程中调用存储过程。(MS SQL Server)
- MS SQLSERVER中如何快速获取表的记录总数
- 关于Oracle与SqlServer中获取所有字段、主键、外键的sql语句
- 关于Oracle与SqlServer中获取所有字段、主键、外键的sql语句(转)
- MS SQLSERVER中如何快速获取表的记录总数
- MS SQLSERVER 2000 中如何快速获取表的记录总数
- MS SQLSERVER中如何快速获取表的记录总数
- 在MS SQLSERVER中如何最快的速度清空所有用户表的数据
- 关于Oracle与SqlServer、Access中获取所有字段、主键、外键的sql语句
- MS SQLSERVER中如何快速获取表的记录总数
- MS SQLSERVER中如何快速获取表的记录总数
- 关于Oracle与SqlServer中获取所有字段、主键、外键的sql语句
- MS SQLSERVER中如何快速获取表的记录总数
- 如何调用存储过程,有返回值的,有参数的,存储过程中调用存储过程。(MS SQL Server)
- MS SQL SERVER中如何快速获取表的记录总数
- 关于Oracle与SqlServer中获取所有字段、主键、外键的sql语句(转)
- 关于Oracle与SqlServer、Access中获取所有字段、主键、外键的sql语句
- Oracle与SqlServer中获取所有字段、主键、外键的sql语句
- MS SQLSERVER中如何快速获取表的记录总数