Sql server 从链接服务器读取并在本地数据库上删除
我在不同的数据库上有两个类似的表。我已经链接了远程数据库,并将其数据访问设置为“True” 但是,我无法使以下查询正常工作Sql server 从链接服务器读取并在本地数据库上删除,sql-server,database,sql-server-2008,linked-server,Sql Server,Database,Sql Server 2008,Linked Server,我在不同的数据库上有两个类似的表。我已经链接了远程数据库,并将其数据访问设置为“True” 但是,我无法使以下查询正常工作 GO USE LOCALDB GO DELETE from [dbo].[TableA] WHERE [dbo].[TableA].[UniqueField] = (SELECT [UniqueField] FROM [REMOTESERVER].[REMOTEDB].[dbo].[TableA]) GO 这个查询没有给我任何错误,但它也不会删除UniqueField上
GO
USE LOCALDB
GO
DELETE from [dbo].[TableA]
WHERE [dbo].[TableA].[UniqueField] = (SELECT [UniqueField] FROM [REMOTESERVER].[REMOTEDB].[dbo].[TableA])
GO
这个查询没有给我任何错误,但它也不会删除UniqueField上有匹配项的条目。我现在被阻塞了,这是我想到的唯一一个不会提示错误的查询
编辑:查询显示0行受影响
提前感谢,
EtonB.思想
我会考虑在本地加载一个表变量,然后使用它删除。这将停止分布式txn启动的任何机会,这可能发生在使用远程服务器数据的本地写入操作中
UniqueField varchar和排序规则兼容吗?或者没有,需要整理。也就是说,可能查询工作正常,但匹配取决于具体情况 这是什么回报SELECT [UniqueField] FROM [REMOTESERVER].[REMOTEDB].[dbo].[TableA]
它是否适用于某些值,但不适用于所有值?精确的数据类型匹配?等等。它什么都不做吗?错误超时?是否从REMOTESERVER中选择[UniqueField]。[REMOTEDB]。[dbo]。[TableA]返回行?@gbn:它表示0行受影响,即使检查DB显示有明显匹配的字段。也确实从[dbo]。[TableA]中选择*,其中[dbo]。[TableA]。[UniqueField]=从[REMOTESERVER]。[REMOTEDB]。[dbo]。[TableA]中选择[UniqueField]return rows=从[REMOTESERVER].[REMOTEDB].[dbo].[TableA]中选择[UniqueField]。[TableA]必须返回一个值,查询返回我要匹配的1个唯一字段。这是一个datetime字段。@B:那么这两列都是datetime吗?当您硬编码select时,您确定本地表上的值存在到毫秒吗?我刚刚注意到有4毫秒的差异。。这就成功了。原来我的原始查询是正确的。谢谢!