网络编程
位置:首页>> 网络编程>> 数据库>> Sql server 2005 找出子表树

Sql server 2005 找出子表树

作者:Tianjon 来源:博客园 发布时间:2008-11-24 15:23:00 

标签:

同事在准备新老系统的切换,清空一个表的时候往往发现这个表的主键被另一个表用做外键,而系统里有太多层次的引用.所以清起来相当麻烦

用下面这个脚本可以做到找出一个特定表的引用树,比如 table2 有个外键引用到了table1  table3有个外键饮用到了table2  .......


Code
declare @tbname nvarchar(256);
set @tbname=N'dbo.aspnet_Applications';

with  fkids as
(
    select 
    object_id(CONSTRAINT_NAME) as FkId,
    object_id(UNIQUE_CONSTRAINT_NAME) AS PkId
    from INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS
)
,realations as
(
    select p.parent_object_id as pktableId
    ,f.parent_object_id as fktableid
    ,i.pkid,i.fkid
    from
    fkids i inner join sys.objects p on i.pkid=p.[object_id]
    inner join sys.objects f on i.fkid=f.[object_id]
 
)
,cte as
(
    select  * from realations where pktableid=object_id(@tbname)
    union all
    select r.* from cte c join realations r  on r.pktableid=c.fktableid
)

select
object_name(pktableid) as pktable
,object_name(fktableid) as fktable
,object_name(pkid) as pk
,object_name(fkid) as fk from cte 

0
投稿

猜你喜欢

  • 在做我的友情链接批量检查工具过程中,碰到一些情况,就是对方网页会用gzip压缩。用gzip压缩的好处是,能压缩网页大小,加快网页的浏览速度,
  •   查询语言通过在查询表格中键入单词或短语,然后单击按钮执行查询,就可以在 Web 站点中搜索任意的单词或短语(例如,查询表格示例
  • 按单字节计算字符串的长度,汉字算两个字节。<script  type="text/JavaScript"
  • 1、注册时验证数据库用户名是否存在。 2、输入密码时提示密码强度和验证2次密码输入是否一样。 3、注册时验证数据库联系邮箱是否存在。 4、注
  • 有在论坛上看到一帖,《请教查询出连续日期记录的方法》,截图如下:Insus.NET尝试写了程序并做了测试,可以得到预期的结果,SQL代码可参
  • 最近由于单位数据库硬盘空间不足,整理的时候查了许多文章,也进行了测试,整理后得出一些经验供大家参考。首先,在网上看到一篇文章,如何Shrin
  •  IIS上设置301 跳转相信大家都会,只要在网站-属性-主目录里 选择重定向URL就行了,这样整站就跳转到目标站点了,但是有个问
  • “模板化”——这也许是视觉设计师通常最不愿意听到的概念,先入为主的会产生“批量生产”、“体力活儿”、“限制思维”等概念,总之都比较负面。但为
  • 矛盾出来了,像我们这些小作坊,基本都是设计布局一人搞定。甚至还有加后台程序的。假设设计的时候考虑布局了,我们都有这个能力进行调整。但像大公司
  • mysql数据库没有增量备份的机制,当数据量太大的时候备份是一个很大的问题。还好mysql数据库提供了一种主从备份的机制,其实就是把主数据库
  • 第一章:基本的圆角框第二章:透明圆角化背景图片第三章:圆角化图片 第四章:CSS圆角框组件 V1.0序言:在我的文章《超圆滑圆角框的半完美解
  • 这段时间在处理SQL server 2000 SP4补丁打不上的问题上花了不少时间,回头想想应该总结一下:系统说明:dell1800服务器,
  • 方法一一般情况下,SQL数据库的收缩并不能很大程度上减小数据库大小,其主要作用是收缩日志大小,应当定期进行此操作以免数据库日志过大1、设置数
  • 在网络设计领域关于Eye-Tracking的研究十分火爆,但是如何把这些研究结果转变为具体可行的设计来运作依旧是个难点。以下就是一些来自于E
  • 插入一条记录后,如何得到最新的自动增加ID?我们要用到SQL Server的@@IDENTITY。它能够记录下系统最近使用的一个IDENTI
  • 对想要在可视化的环境下制作复杂网页的专业网页制作者来说,Dreamweaver 已经渐渐在网页编辑工具市场中展露头角,成为专业人士
  • 学会了FSO提取文件值,也学会了将信息输入到文件中,那下面就再来应用应用下。不知道你有没有这样的习惯:看到一个文件,不自觉的右键选择用记事本
  • 其实在很久很久之前就发现search类型的input,该属性值是WebKit私有,不过一直没去查相关的属性,介于XXX原因,我找出其属性,回
  • 我们现在使用的验证手段都是以验证码为主,让用户根据图片输入验证字符,这种方法的安全度尚可,但会给用户带来一些不便和困扰,比如这个雅虎的验证码
  • 本文从算法入手同时通过实例来讲解如何在SQL Server数据库中实现最优最简的整个过程。算法是计算机科学中一个重要的研究方向,是解决复杂问
手机版 网络编程 asp之家 www.aspxhome.com