2016-05-15 84 views
-2

我想寫一個觸發器添加到SQL Server數據庫表中,首先一切都好,但是當我檢測到我可以' t將數據添加到我的表中,則會出現以下消息:SQL Server子查詢返回多個值。這是不允許的,當子查詢遵循=,!=,<, <= , >,> =,使用觸發器

SQL Server子查詢返回的值超過1個。這當子查詢跟隨不允許=,=,<,< =,>,> =

如果您有任何想法來解決這個問題,請幫幫我吧!;

我的稱呼。

+2

我們不可能用我們看不見的代碼來幫助你。錯誤信息非常清晰。所以你需要修改你的子查詢,以便它不能返回多行,或者重寫你的代碼而不使用子查詢。 –

回答

0

的問題是,你有這樣的事情:

SELECT foo 
FROM Bar 
WHERE baz = (
     SELECT baz 
     FROM Whatsit 
     WHERE a = 42 
); 

()位是子查詢。當子查詢返回多行時,你不能這樣做,因爲SQL Server不知道在比較中使用哪一行的值。

的解決方案是:

  1. 修改子查詢,因此只返回單行,或

  2. 修改整個語句中使用聯接

你使用取決於具體的查詢。

0

如果您使用=或!=,則可以使用IN或NOT IN。你也可以使用EXISTS或NOT EXISTS,這取決於你想要做什麼。

相關問題