簡體   English   中英

SQL Server查詢問題...這個錯誤是什么意思?

[英]SQL Server query issue…What does this error mean?

試圖運行:

UPDATE dbo.OBCases 
SET CatID = '42' 
WHERE CatID = '2';

但我從SSMS得到以下錯誤:

消息512,級別16,狀態1,過程UpdateCaseType,行14
子查詢返回的值超過1。 當子查詢跟隨=,!=,<,<=,>,> =或子查詢用作表達式時,不允許這樣做。

這究竟是什么意思,更重要的是,我該怎么做呢?

謝謝

感謝Dan給我關於觸發器的線索。 事實證明,觸發器的編寫很糟糕。 有一大堆嵌套的SELECT語句返回多個結果。

原來看起來像這樣:

  Update OBCases set CaseTypeID = (select CaseTypeID from  Hospitals where HospID = (select HospID from inserted)) Where CaseID = (Select CaseID from inserted)

我不得不更新它們,不包括嵌套的SELECT,使它們更像是:

UPDATE c
    SET c.CaseTypeID = h.CaseTypeID
    FROM OBCases c
    INNER JOIN inserted i on c.CaseID = i.CaseID
    INNER JOIN Hospitals h on i.HospID = h.HospID
    WHERE c.CaseTypeID <> h.CaseTypeID

而且我能夠正常運行一切。 再次感謝您指出我正確的方向!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM