sql server 基礎 多表關聯建立

2021-08-30 18:44:52 字數 1806 閱讀 5032

if object_id('tablecd') is not null drop table tablecd---多對多要加個中間表

goif object_id('tabled') is not null drop table tabled

goif object_id('tablec') is not null drop table tablec

goif object_id('tableb') is not null drop table tableb

goif object_id('tablea') is not null drop table tablea

gocreate table tablea (aid varchar(10) primary key,aname varchar(20))

insert tablea select 'a1','公司1'

gocreate table tableb (bid varchar(10) primary key,bname varchar(20),aid varchar(10) references tablea(aid) )

insert tableb

select 'b1','部門1','a1' union all

select 'b2','部門2','a1'

gocreate table tablec (cid varchar(10) primary key,cname varchar(20),bid varchar(10) references tableb(bid) )

insert tablec

select 'c1','人員1','b1' union all

select 'c2','人員2','b1' union all

select 'c3','人員3','b2' union all

select 'c4','人員4','b2'

gocreate table tabled (did varchar(10) primary key,dname varchar(20))

insert tabled

select 'd1','許可權1' union all

select 'd2','許可權2' union all

select 'd3','許可權3' union all

select 'd4','許可權4'

gocreate table tablecd (cdid int identity primary key,cid varchar(10) references tablec(cid)on delete cascade ,did varchar(10) references tabled(did)on delete cascade )

insert tablecd

select 'c1','d1' union all

select 'c1','d2' union all

select 'c2','d1' union all

select 'c3','d4'

delete tablec where cid='c1'

--or

--delete tabled where did='d1'

select * from tablecd

(1 行受影響)

(2 行受影響)

(4 行受影響)

(4 行受影響)

(4 行受影響)

(1 行受影響)

cdid cid did

----------- ---------- ----------

3 c2 d1

4 c3 d4

(2 行受影響)

sql server多表關聯update

一般都是寫的單錶update語句,很少寫多表關聯的update,但是事實上,在sql server中,update的多表連線更新和select的多表連線查詢在使用的方法上其實並沒有多大區別。直接上乙個例子就好了。update aaa set aaa.name bbb.name from user 0...

多表關聯更新

用優惠表裡面的70006569的優惠的開始時間 來更新lik.temp yangmm 1115 discnt 的開始時間。這就出現問題了第乙個問題 同乙個使用者的70006569 優惠的開始時間可能有好幾個 取哪乙個?這就需要rank 函式來解決。第二個問題更新的時候會出現無法將null值插入.這個...

oracle update多表關聯

update a.a3 a.a3 b.b3 的問題 表a 結構 a1 a2 a3 表b 結構 b1,b2,b3 其中 a1 b1 為pk 切值相同 就是可以使用a1 b1 了.請問用sql 語句或過程該如何實現如下的功能?更新a 表的 a3 用a.a3 與b.b3之和更新.3 update a se...