[英]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.