国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

看Sql server 2005 找出子表樹

2024-08-31 00:46:26
字體:
來源:轉載
供稿:網友

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新密市| 贡觉县| 蓬莱市| 凤凰县| 宜阳县| 星子县| 五大连池市| 吉水县| 广平县| 朝阳市| 云霄县| 老河口市| 东港市| 兖州市| 拜城县| 莫力| 西安市| 井研县| 长葛市| 揭西县| 德格县| 吴桥县| 宁远县| 枣庄市| 泰和县| 江津市| 额敏县| 济阳县| 屏山县| 商城县| 漳浦县| 扬中市| 包头市| 河曲县| 乾安县| 清远市| 轮台县| 常熟市| 龙海市| 宿州市| 天门市|