0
我在我的服務器上有兩個數據庫:當前數據庫(我們稱之爲CurrentDB
)和另一個從備份CurrentDB
恢復的數據庫(讓我們稱它爲BackupDB
)。從備份中更新當前數據庫中的數據:跨DB子查詢返回大於1的值
在特定的表中有一個特定的text
列,對於某些行,我需要通過將它們連接在一起來合併行的舊版本的數據。
update CurrentDB.dbo.FormFieldData
Set [Text] = (
select ffd.[Text]
from BackupDB.dbo.FormFieldData as ffd
where ffd.FormFieldDataID = FormFieldDataID
)
where FormFieldDataID in (
select ffd.FormFieldDataID
from BackupDB.dbo.FormFieldData as ffd
join BackupDB.dbo.FormFields as ff on ffd.FormFieldID = ff.FormFieldID
join BackupDB.dbo.FormData as fd on ffd.FormDataID = fd.FormDataID
where ff.FormID = 1
and ffd.FormFieldID = 2
and fd.UserID = 3
and Text like '%john smith%'
)
(在FormFieldData
表的兩個版本,FormFieldDataID
是主鍵)
只是爲了確保子查詢我想出了工作,我在Begin
/Rollback
區域跑這
不幸的是,運行此原因:Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
我敢肯定有一些簡單的我失蹤,但我不明白爲什麼第一個子查詢可以永遠返回多個值。
我錯過了什麼?
啊!我本來曾考慮過這個問題,但因爲我無法在「更新
相關問題