我有一個20100729的A資料庫及20100720的A資料庫備份,因我的疏忽把A資料庫的table內的資料刪掉幾筆,如果我現在要還原刪掉的table資料是要以什麼方式救回比較簡單?
1.用還原資料庫方式,因為我備份的是完整備份,要怎樣才能達到只要A資料庫補回我刪掉的部分?
2.將備份還原成另一個B資料庫利用匯入資料的方式作,要怎樣才能達到只要A資料庫補回我刪掉的部分?
我用的是SQL2000,麻煩大大能教我一下感謝
依照樓上的jhik大和evayang大這樣子沒錯,這個時候你不用考慮效能好不好了。
ID就是你的主鍵,我整理一下好了:
INSERT INTO tkmsold SELECT *
FROM ticket
WHERE ID NOT IN (SELECT ID FROM tkmsold.dbo.ticket)
tig001提到:
刪掉的table資料是要以什麼方式救回比較簡單?
你是 DROP TABLE
或是 DELETE TABLE ?
DELETE TABLE 就簡單了!!
INSERT NOT EXISTS 就好了
DROP 就 CREATE TABLE 後
INSERT NOT EXISTS 就好了
簡單並的方法,把他mount在另外一個資料庫還後,自由取用你想要得資料
假設有主鍵的話方法如下,找出被刪了的那幾筆,insert回去
INSERT INTO tableA --tableA是被刪了幾筆的
select *
from tableB a --tableB的資料是含有被你刪了幾筆的資料
where a.keycol not in --keycol是主鍵
(select keycol from tableA) b
jhik提到:
INSERT INTO tableA --tableA是被刪了幾筆的
select *
from tableB a --tableB的資料是含有被你刪了幾筆的資料
where a.keycol not in --keycol是主鍵
(select keycol from ...(恕刪)
除非 not in 是一點點資料
不建議使用 請用 not exists
謝謝
重貼成回答問題:
假設有主鍵的話方法如下,找出被刪了的那幾筆,insert回去
INSERT INTO tableA --tableA是被刪了幾筆的
select *
from tableB a --tableB的資料是含有被你刪了幾筆的資料
where a.keycol not in --keycol是主鍵
(select keycol from tableA) b
如果2個database都掛載在同一個server上的話,將樓上jhik的回答內容,再加上資料庫owner應該就行了吧~ 但如果database是掛載在不同的server就得在table前再加上ip及owner