从SQL Server中的链接服务器表插入本地表

时间:2013-12-14 01:20:30

标签: sql sql-server database

我在SQL Server中编写了一个查询,它从链接表(使用OPENQUERY)中选择并将数据插入到本地表中。我只需要插入已添加到链接表中的新数据。因此,每次运行查询时都不会插入已插入的先前数据。我使用了这个查询:

 SET IDENTITY_INSERT DocumentCenter.dbo.tbl_Webhook ON;

insert into dbo.tbl_Webhook ( 
id,
event,
ip,
city,
domain,
campaignId,
deviceType,
clientType,
region,
clientName,
userAgent,
clientOS,
country,
messageId,
recipient,
campaignName,
timestamp,
token,
signature,
tag,
url,
mailingList,
my_var_1,
my_var_2,
messageHeaders,
attachmentX,
code,
error,
notification,
reason,
description,
CurrentTimestamp)
SELECT *  FROM OPENQUERY([162.241.181.144], 'SELECT * from tbl_Webhook') 
Where id > (Select max(id) From DocumentCenter.dbo.tbl_Webhook)

SELECT * FROM OPENQUERY([162.241.181.144], 'SELECT * from tbl_Webhook')的部分正在工作,因为我可以看到数据,但是当我运行插入语句时,它会给我(0 row(s) affected)并且没有错误。我已在本地数据库中创建了相同的表。本地数据库的名称为DocumentCenter,表名为tbl_Webhook

我错过了什么?

我找到了答案:我发现id为空(Select max(id) From DocumentCenter.dbo.tbl_Webhook),因为表格以空为开头。所以我添加了一行然后执行查询,它完美无缺。

1 个答案:

答案 0 :(得分:1)

好的我找到了答案:我发现id为null)(从DocumentCenter.dbo.tbl_Webhook中选择max(id))因为table为空,因此开头。所以我添加了一行然后执行查询,它完美无缺。