私はサーバAのテーブルと別のサーバの同じテーブルを持っています。 サーバAのテーブルをサーバBのデータで一日一回更新します。サーバーAのテーブルには1億以上のレコードがあります。どのようにしてこれを行うことができるので、サーバAのテーブルのデータを更新している間も、以前の情報で読めるようになります。SQLサーバの2つのテーブルを同期する
意図した動作:
サーバーA:
create table tbl_transaction_test (
tabid int identity,
first_name nvarchar(255),
last_name nvarchar(255),
[address] nvarchar(255),
update_dt datetime
)
サーバーB:
create table tbl_transaction_test (
tabid int identity,
first_name nvarchar(255),
last_name nvarchar(255),
[address] nvarchar(255),
update_dt datetime
)
begin transaction transaction1
truncate table A
Insert into A.tbl_transaction_test
select * from B.tbl_transaction_test
commit transaction transaction1
そして同時に、私は、サーバーA.
上の表から選択しますサーバA上のテーブル内のデータが変更される動作を取得するには、tr ansactionはコミットされ、これはすぐに(ほぼ即座に)行われます。
同様に:http://stackoverflow.com/questions/5082585/drop-and-create-table-inside-transaction-on-sql-server-impact-on-other-processe –