數據表複製的問題
現在有一張千萬條記錄的數據表要天天更新,用了先truncate再ssis的方法;為了防止truncate后SSIS執行失敗,要在目標server上複製一個與目標server一樣的數據表做備用,我用的是select into語句複製了這個表,如果ssis失敗的話就吧這個在select into 回去,不至於表中沒有數據;請教各位大神有沒有更好的方案?
還想問的是 同一數據庫中有沒有其他更好的複製方法能夠把表的所有屬性(索引,用戶等)全部複製過去
------解决方案--------------------
建议这样做
数据库中有两个表, 一个是正式用的, 比如叫 tb_used, 另一个是你每天更新用的, 比如叫 tb_update
两个表结构一样
你的 ssis 更新在 tb)update 是进行(也就是不直接更新使用的那个表)
这样, ssis 失败的话, 自然不影响正常使用
如果更新成功的话, 那么使用事务做如下操作(有事务的保证, 失败会恢复原状)
SQL code
begin tran
truncate tb_used
alter table tb_update switch to tb_used -- switch 数据, 这个是非常快的
commit
------解决方案--------------------