不好意思打擾了
請問要怎麼定時將A主機的某table整個覆蓋到B主機相同名稱的table呢?
看到很多文章都是寫複製資料到一樣的主機
想請問有辦法做到將某table整個從A->B主機嗎?
(我平常搬table都用匯入匯出精靈 可是這樣就不能用排程讓他定時執行)
我的想法是:
先TRUNCATE目標table所有的資料 再把另一台主機的table insert 進去
但是先TRUNCATE感覺很可怕 又不知道怎麼定時先備份單一table
不知道有沒有更安全的方法 謝謝!
*我好像知道怎麼用了!可是怎麼不能刪文><
用osql指令+Window定時排程~
可以先備份,然後先清除B主機指定資料表(truncate table 某資料表),再複製A主機指定資料表到B主機指定資料表。
另外你的AB主機的伺服器物件→連結的伺服器,要先做好~
才方便下SQL直接複製過去(在OSql裡面下)
insert into B主機指定資料表
select *
from [A主機的伺服器].[資料庫].dbo.[資料表]
參考
https://docs.microsoft.com/zh-tw/sql/tools/osql-utility?view=sql-server-ver15
備份指令參考~(寫在Bat檔裡面,用window排程定時執行備份)
set ToDay=%date:~0,4%-%date:~5,2%-%date:~8,2%
osql -U 帳號 -P 密碼 -S 伺服器IP -n -Q "BACKUP DATABASE Test TO DISK='D:\SQL-Backup\Test-%ToDay%.bak'"
同一台機器上的話建議是
Drop TABLE TABLE2
SELECT * INTO TABLE2 FROM TABLE1
的方式,兩行應該能搞定
不過,真的不聰明,為何不用trigger呢?
不同主機的話請加入SQLSERVER的伺服器物件→連結的伺服器,就可以在一個查詢句裡跨多個伺服器
如
SELECT * INTO DB1.dbo.TableY FROM ServerB.DB2.dbo.TableX
他們家好像是安裝一堆SQL Server主機
https://ithelp.ithome.com.tw/questions/10202476
btw ...... 十台伺服器也是比照辦理,比較好的做法就是設定訂閱,次一點的方法用trigger,下下之策才用DROP ... SELECT INTO .. FROM
謝謝大神的回覆!
因為那台伺服器歷史太悠久
當初安裝沒有裝複寫的功能 現在無法停機
所以我當初才不考慮用複寫的功能
我第一次聽到trigger的方法~
我會去查一下用法~再次感謝您> <
SQL Server 有線上的中文文件.
複寫 在 匯入和匯出精靈的上一章.
請詳閱公開說明書.