我在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
),因为表格以空为开头。所以我添加了一行然后执行查询,它完美无缺。
答案 0 :(得分:1)
好的我找到了答案:我发现id为null)(从DocumentCenter.dbo.tbl_Webhook中选择max(id))因为table为空,因此开头。所以我添加了一行然后执行查询,它完美无缺。