【问题标题】:How to update record using Select Statement in SQL Server?如何在 SQL Server 中使用 Select 语句更新记录?
【发布时间】:2018-02-18 17:13:57
【问题描述】:
我想像下面这样更新。
update dbo.Record
set Alias = select alias from #tempRecord
WHERE Item = select Item from #tempRecord
我在触发器中使用这个。即使我尝试如下
DECLARE @Alias nvarchar(MAX)
DECLARE @ItemID INT
set @Alias = select alias from #tempRecord
错误信息
SELECT 附近的语法不正确
注意
这个表#tempRecord只有一行。不是多条记录
【问题讨论】:
标签:
sql
sql-server
stored-procedures
triggers
【解决方案1】:
只是:
set @Alias = (select alias from #tempRecord)
或
SELECT @Alias = alias
from #tempRecord;
【解决方案2】:
如果您想使用 SELECT 语句的值,您必须将它们放在括号中,如下所示:
set @Alias = (select alias from #tempRecord)
但您必须记住,这仅在您的 SELECT 返回单个值时才有效。
对于您的 UPDATE,您可能最好使用 JOIN:
update dbo.Record
set Alias = T.alias
from dbo.Record R
INNER JOIN #tempRecord T ON T.Item = R.Item