Eto*_* B. 0 database sql-server linked-server sql-server-2008
我正在尝试使用此查询来删除链接服务器的数据库中已有的行:
GO
USE TAMSTest
GO
DELETE from [dbo].[Hour]
WHERE [dbo].[Hour].[InHour] = (SELECT [InHour]
FROM [TDG-MBL-005].[TAMSTEST].[dbo].[Hour])
GO
Run Code Online (Sandbox Code Playgroud)
当链接服务器表中只有一行时,SELECT [InHour] FROM [TDG-MBL-005].[TAMSTEST].[dbo].[Hour]返回该行,DELETE按预期工作.但是,对于链接服务器表中的多行,它不起作用,因为查询的该部分返回多行作为其结果.我该如何解决这个问题?
如果需要进一步的信息请询问,我需要尽快完成.
在此先感谢,伊顿B.
将您的等号更改为IN语句
DELETE from [dbo].[Hour]
WHERE [dbo].[Hour].[InHour] IN (SELECT [InHour]
FROM [TDG-MBL-005].[TAMSTEST].[dbo].[Hour])
Run Code Online (Sandbox Code Playgroud)
IN子句允许您在WHERE子句中具有多个值,并且也可以在子查询中使用.这是更多信息.