2012-06-30 45 views
1

我得到這個錯誤,即使我有試過什麼其他建議後仍相同的錯誤 但是當我運行選擇它的工作原理確定... 任何幫助,將不勝感激必須聲明標量變量@tempTbl

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 [email protected] 

回答

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 
+0

非常感謝你..完美的工作 – Saba

+0

沒有probs,自己以前有這個問題:) – Charleh