2010-08-11 71 views
0

我試圖用這個查詢刪除已經在鏈接服務器的數據庫中的行:問題試圖修復SQL查詢返回一個結果

GO 
USE TAMSTest 
GO 
DELETE from [dbo].[Hour] 
WHERE [dbo].[Hour].[InHour] = (SELECT [InHour] 
            FROM [TDG-MBL-005].[TAMSTEST].[dbo].[Hour]) 
GO 

當只有1行中的鏈接服務器的表,SELECT [InHour] FROM [TDG-MBL-005].[TAMSTEST].[dbo].[Hour]返回該單行並且DELETE按預期工作。但是,在鏈接的服務器表中有多行時,它不起作用,因爲該查詢的該部分返回多行作爲其結果。我該如何解決這個問題?

如果需要進一步的信息,請問,我需要儘快完成這項工作。

由於提前, 伊頓B.

回答

7

您等號更改爲IN聲明

DELETE from [dbo].[Hour] 
WHERE [dbo].[Hour].[InHour] IN (SELECT [InHour] 
    FROM [TDG-MBL-005].[TAMSTEST].[dbo].[Hour]) 

IN子句可以讓你有你的WHERE子句中的多個值,並且可以用在子查詢也是如此。這裏是more information

+0

嘿!這很容易......現在我覺得更像一個新手。謝謝! – 2010-08-11 23:22:20

+0

很高興我能幫到你 – LittleBobbyTables 2010-08-11 23:37:26