1

他の投稿が同じエラーを示唆していることを試したにもかかわらず、このエラーが発生しますが、selectを実行すると正常に動作します...助けていただければ幸いです

 ALTER PROCEDURE UpdateCustomers

    @XML AS XML

AS 
DECLARE @tempTbl TABLE(
     tblID INT ,
     Customer_name NVARCHAR(30),
     Customer_Code NVARCHAR(10)

)

INSERT INTO @tempTbl(tblID, Customer_name, Customer_Code)
SELECT
    Item.element.value('@tblID', 'int'),
    Item.element.value('@Customer_name', 'nvarchar(30)'),
    Item.element.value('@Customer_Code', 'nvarchar(10)')

FROM
    @xml.nodes('/root/item') AS Item(element)


--SELECT * FROM @tempTbl---it runs ok



UPDATE dbo.Customers
 SET
                     dbo.Customers.Customer_name =  @tempTbl.Customer_name, 
                     dbo.Customers.Customer_Code = @tempTbl.Customer_Code
from dbo.Customers
                inner join @tempTbl
                    on Customers.tblID =@tempTbl.tblID
4

1 に答える 1

6

UPDATEでテーブル変数のエイリアスを試してください

例えば

UPDATE dbo.Customers
SET
                 dbo.Customers.Customer_name =  tmp.Customer_name, 
                 dbo.Customers.Customer_Code = tmp.Customer_Code
from dbo.Customers
            inner join @tempTbl tmp
                on Customers.tblID = tmp.tblID
于 2012-06-30T13:57:01.637 に答える