sql server刪除Hierarchy的一支

2021-06-20 06:04:33 字數 677 閱讀 9562

寫下來以後便於查詢

sql server 2008r2, 如果乙個**是hierarchy的有三列,如下

id, name,parentid

1    a          null

2    b           1

3    c           1

4    d           2

5    e           4

如果我想刪除(查詢)b以及以下所有節點怎麼辦呢

1,需要recursive的選出來

with cetalias as 

(select t.[id],t.[name],t.parentid from yaqitest t

where t.id=2

union all

select t.[id],t.[name],t.parentid from yaqitest t

inner join cetalias parent on t.parentid=parent.id)

select * from cetalias ct

2, 有的時候需要看看資料是否在別的表中用到,資料庫中應該有這個限制。可惜我們沒有,後來因為爛資料不好加

3,刪除。如果中間需要做什麼可以把cetalias匯入到乙個臨時**中搞定

SQL SERVER 級聯刪除

有三個表 company address contact 在address和contact中建立外來鍵,外來鍵id為company的id,那麼就不能任意刪除company。但假如在外鍵約束中把級聯刪除選上,就會連帶address和contact一起刪除。sql server級聯刪除 在刪除主表時,自...

sql server 批量刪除

sql server 批量刪除資料 建立表1 1 create table table1 23 id int primary keyidentity 1,1 4 msg varchar 24 5 loc varchar 24 6 style varchar 24 7 建立表2 1 表2 2creat...

SQL Server 增加 刪除 修改

use test go student表 1 1 新增行 全部列的資訊 insert into student values 9 黎明 1992 06 10 男 1 2 新增行 部分資訊,沒有新增資訊的列顯示null insert into student s sname values 12 趙亮 ...