【问题标题】: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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-05-18
        • 1970-01-01
        • 2019-03-17
        • 2013-02-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多