如何为每个更新行插入INTO

时间:2013-08-13 12:25:19

标签: sql insert sql-update

拥有SQL INSERT语句

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

和UPDATE语句

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

WHERE AddressID = 783240

我需要使用Address为每个记录插入表AddressID = 783240新的相同记录,请帮忙。

2 个答案:

答案 0 :(得分: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作为另一种解决方案,但是存在细微差别(我相信,与触发器相关)。

答案 1 :(得分:0)

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

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

这是你的想法吗?