看Sql server 2005 找出子表樹_Mssql數據庫教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:解讀動態SQL語句的編程
      動態SQL語句中的參數,我們可以通過兩種途徑來為它賦值: 1. 利用參數編輯器(Parameter Editor)來為參數賦值 具體方法是:選中TQuery部件,單擊鼠標右鍵,然后從中選擇Define Pa

      同事在準備新老系統的切換,清空一個表的時候往往發現這個表的主鍵被另一個表用做外鍵,而系統里有太多層次的引用.所以清起來相當麻煩

      用下面這個腳本可以做到找出一個特定表的引用樹,比如 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

      分享:SQL Server 2008 層次ID數據類型
      目錄 準備工作1 練習:使用HierarchyID數據類型2 準備工作 預計完成本實驗所需的時間 40 分鐘 目標 在完成本實驗后,您將可以: 處理SQL Server 2008當中的層次ID數

      來源:模板無憂//所屬分類:Mssql數據庫教程/更新時間:2009-08-01
      相關Mssql數據庫教程