【问题标题】:how to INSERT INTO for each updates row如何为每个更新行插入 INSERT INTO
【发布时间】:2013-08-13 12:25:18
【问题描述】:

有一个 SQL INSERT 语句

INSERT INTO [tbAddress]
           ([CompanyName])
 VALUES
           ('undefined'),

和 UPDATE 语句

UPDATE tbOrganisation
SET AddressID=INSERT INTO [tbAddress]
           ([CompanyName])
     VALUES
           ('undefined' )

WHERE AddressID = 783240

我需要为AddressID = 783240 的每条记录插入新的相同记录Address,请帮助。

【问题讨论】:

    标签: sql insert sql-update


    【解决方案1】:

    你需要使用SCOPE_IDENTITY:

        DECLARE @addressId int
    
        INSERT INTO [tbAddress] ([CompanyName]) VALUES ('undefined')
        SET @addressId = SCOPE_IDENTITY()
    
        UPDATE tbOrganisation SET AddressID = @addressId WHERE AddressID = 783240
    

    有关 Technet 的更多信息,请点击此处:http://technet.microsoft.com/en-us/library/ms190315.aspx。请注意,您可能会遇到 @@IDENTITY 作为另一种解决方案,但存在细微差别(我相信与触发器有关)。

    【讨论】:

      【解决方案2】:

      我不能 100% 确定我理解了这个问题,但我认为这应该会有所帮助:

      UPDATE tbOrganisation SET AddressID='undefined' WHERE AddressID=783240;
      

      这是你的想法吗?

      【讨论】:

        猜你喜欢
        • 2018-11-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-21
        • 2022-07-06
        相关资源
        最近更新 更多