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.
我敢肯定有一些简单的我失踪,但我不明白为什么第一个子查询可以永远返回多个值。
我错过了什么?
啊!我本来曾考虑过这个问题,但因为我无法在“更新
相关问题