我有个问题。我正在使用MS SQL Server Management Studio。
我的词典表有很多翻译。我需要将完整的描述从一个languageID复制到另一个languageID。
下面的例子。
LanguageID | Description
2 | Some text
2 | More text
2 | Some more text
10 | *needs to be replaced
10 | *needs to be replaced
10 | *needs to be replaced
结果必须是这样的:
LanguageID | Description
2 | Some text
2 | More text
2 | Some more text
10 | Some text
10 | More text
10 | Some more text
LanguageID 2和10的描述必须完全相同。
我当前的查询遇到错误:
update tblDictionary
set Description = (Select Description from tblDictionary where
tblDictionary.LanguageID = 2)
where LanguageID = 10
消息512,级别16,状态1,行1子查询返回了多个1
值。当子查询遵循=,!=,
,> =或将子查询用作表达式时。该语句已终止。
最佳答案
如果LanguageID 10的所有翻译必须与languageID 2的翻译完全相同,则可以轻松删除ID 10的所有翻译,然后重新插入。
像这样
delete from tblDictionary where LanguageID = 10;
insert into tblDictionary (LanguageID, Description)
select 10, d.Description
from tblDictionary d
where d.LanguageID = 2
此方法还具有以下优点:如果
LanguageID = 10
的记录较少,那么LanguageID = 2
的记录将在同一过程中更正。如果tblDictionary中的列多于需要修改的插入语句
关于sql - SQL更新1个表中的多行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48661053/