[英]SQL query to run 3 step (Select-Insert-delete) on linked server
我在SQL Server 2008中有一個到mysql的鏈接服務器。
我正在尋找一個存儲過程來執行這3個步驟:
在使用鏈接服務器之前,有一個見證機器和那台機器這些步驟以編程方式如下:
偽代碼:
SELECT values from source
if($row>0)
{
foreach ($row as $rows)
{
INSERT INTO dest (selected value from source)
Delete from source
}
}
以編程方式我做一個循環,我確切地知道插入發生的時間然后我刪除了源值,但是如何在存儲過程和日常工作中實現這個故障安全?
這是我的插入代碼方法沒有刪除:
declare @count bigint
select @count = max(id) from dest.table
INSERT INTO dest.table(ID)
SELECT TOP 50000 ID
FROM [sourceLinkedServer].[db].[table]
WHERE ID > @count
也許這樣的事情可以完成這項工作:
create table #temp (ID int, value varchar(20))
insert into #temp(ID,value)
select top 50000 value from [sourceLinkedServer].[db].[table]
where ID > (select max(ID) from destTable)
order by ID
insert into destTable (value)
select value from #temp
delete ls
from [sourceLinkedServer].[db].[table] as ls
where exists (select 1 from #temp as t where t.id = ls.ID)
drop table #temp
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.