sql-server – MSSQL:如何查找具有引用特定table.column的外键的所有表,并具有这些外键的值?
发布时间:2020-05-24 09:09:23 所属栏目:MsSql 来源:互联网
导读:我有一个表,其主键在几个其他表中被引用为外键。例如: CREATE TABLE `X` ( `X_id` int NOT NULL auto_increment, `name` varchar(255) NOT NULL, PRIMARY KEY (`X_id`))CREATE TABLE `Y` ( `Y_id` int(11) NOT NULL auto_incremen
|
我有一个表,其主键在几个其他表中被引用为外键。例如: CREATE TABLE `X` ( `X_id` int NOT NULL auto_increment,`name` varchar(255) NOT NULL,PRIMARY KEY (`X_id`) ) CREATE TABLE `Y` ( `Y_id` int(11) NOT NULL auto_increment,`X_id` int DEFAULT NULL,PRIMARY KEY (`Y_id`),CONSTRAINT `Y_X` FOREIGN KEY (`X_id`) REFERENCES `X` (`X_id`) ) CREATE TABLE `Z` ( `Z_id` int(11) NOT NULL auto_increment,PRIMARY KEY (`Z_id`),CONSTRAINT `Z_X` FOREIGN KEY (`X_id`) REFERENCES `X` (`X_id`) ) 现在,我不知道数据库中有多少表包含外键到X像表Y和Z.有没有可以使用的SQL查询返回:1.具有外键到X AND的表的列表2.哪些表实际上在外键中有值 谢谢! 解决方法尝试这个查询:您必须使用sysreferences和sysobjects表来获取信息 下面的查询给出了所有的foriegn键以及数据库中带有列名称的父表 select cast(f.name as varchar(255)) as foreign_key_name,cast(c.name as varchar(255)) as foreign_table,cast(fc.name as varchar(255)) as foreign_column,cast(p.name as varchar(255)) as parent_table,cast(rc.name as varchar(255)) as parent_column from sysobjects f inner join sysobjects c on f.parent_obj = c.id inner join sysreferences r on f.id = r.constid inner join sysobjects p on r.rkeyid = p.id inner join syscolumns rc on r.rkeyid = rc.id and r.rkey1 = rc.colid inner join syscolumns fc on r.fkeyid = fc.id and r.fkey1 = fc.colid where f.type = 'F' (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- entity-framework-4 – 使用SQL Server Compact与实体框架的
- sql – 使用Hibernate,如何查询表并返回一个带有键值id nam
- SQL Server SQL语言查询基础:连接查询 联合查询 代码
- sql – 编写自联接查询?
- sql-server – 是否可以在通过Web服务执行SSRS报告期间指定
- sql-server – 为什么我的EXISTS查询执行索引扫描而不是索引
- sql-server – 如何衡量或查找创建查询计划的成本?
- sql-server – 在SSIS中选择忽略失败时,忽略的行会发生什么
- 我的香蕉在哪里(SQL查询NULL问题)
- SQL Server 日期相关资料详细介绍
推荐文章
站长推荐
热点阅读
