从Linked Server读取并在本地DB上删除

时间:2010-08-09 19:15:25

标签: sql-server database sql-server-2008 linked-server

我在不同的数据库上有2个类似的表。我已经链接了远程数据库并将其数据访问权限设置为“True”。

但是我无法使用以下查询

GO
USE LOCALDB
GO
DELETE from [dbo].[TableA]
 WHERE [dbo].[TableA].[UniqueField] = (SELECT [UniqueField] FROM [REMOTESERVER].[REMOTEDB].[dbo].[TableA])
GO

此查询不会给我任何错误,但是它再次不会删除UniqueField上匹配的条目。我此刻完全被阻止了,这是我所想到的唯一一个不会引发错误的查询。

编辑:查询显示0行受影响。

提前致谢,

EtonB。

1 个答案:

答案 0 :(得分:0)

...思想

我会考虑在本地加载一个表变量然后使用它来删除。这将阻止使用来自远程服务器的数据进行本地写入操作的分布式txn启动的任何可能性。

UniqueField varchar和“collat​​ion compatible”?或者不需要COLLATE。也就是说,也许查询按预期工作,但匹配结果是CASE。

这又是什么回报?

SELECT [UniqueField] FROM [REMOTESERVER].[REMOTEDB].[dbo].[TableA]

是否适用于某些值但不是全部?精确数据类型匹配?等...