一對多 FK 串接刪除,修改

晚餐聊到一對多 FK 串接刪除,修改,經測試 SQL Server 2008 R2 沒問題,但沒有在其他版本測試

use tempdb
go
create table t1(c1 int primary key,c2 nvarchar(10))
go
create table t2(c1 int primary key,c2 int references t1(c1) on delete cascade on update cascade,c3 nvarchar(10))
go
create table t3(c1 int primary key,c2 int references t1(c1) on delete cascade on update cascade,c3 nvarchar(10))
go
insert t1 values(1,’1′),(2,’2′)
insert t2 values(1,1,’1′),(2,2,’2′)
insert t3 values(1,1,’1′),(2,2,’2′)
go

delete t1 where c1=1
update t1 set c1=3 where c1=2

select * from t2
select * from t3

drop table t2,t3,t1

 

結果是會錯意了,原來問題是如下的:

http://support.microsoft.com/kb/321843/zh-tw

One Comment

  1. Ovda8aO
    Posted 2010 年 07 月 08 日 at 06:29:30 | Permalink | 回覆

    謝謝老師發布這個功能,在SQL7.0要完成外部資料串聯的修改,可以使用多元資料關聯資料。因為主資料庫沒有紀錄多元資料庫的內容,所以使用後將報表儲存備份,它的磁碟區間要大於100MB,也就是102400位元組,可以使用CSV副檔案格式。還有一件重要實務,在CREATE table table1(user_ID,user_name)之前要先將 user_ID 和user_name從候選索引中找來,並且設定t1報表屬性c1=user_ID,c2=user_name。串聯外部資料庫t2將author_ID 和author_name的資料庫屬性更新,刪除t1 中屬性,以t2報表中屬性,替代和更新。需要做降冪更新,這個狀態,將候選索引中user_ID和user_name 作成CREATE table t1(user_ID,user_name)儲存成t1.dbo。這樣分解資料庫串聯,可以做成串聯外部資料庫。

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s

%d 位部落客按了讚: