2017-08-04 51 views
-3

我有兩個表:更新多個表

Projects: ID - ProjectName - Areas - PaymentSystem- etc 
    project details : DetailsID - ProjectDetailName - ProjectDetailImage -ProjectID 

我寫了這個查詢來更新這兩個表的,但我有錯誤訊息,當我執行此過程

過程Update_Project_Detail,行35 列名'ID'無效。

:在錯誤的語句線索你

create proc Update_Project_Detail 

    @projectname nvarchar(MAX), 
    @area nvarchar(MAX), 
    @paymentsystem nvarchar(MAX), 
    @receivedDate date, 
    @propertyClassification nvarchar(MAX), 
    @projectImage nvarchar(MAX), 
    @ProjectDetailName nvarchar(MAX), 
    @ProjectDetailImage nvarchar(MAX), 
    @projectid int 

    as 
    UPDATE Projects 

     SET 

     ProjectName = @projectname, 
     Areas = @area, 
     PaymentSystem = @paymentsystem, 
     ReceivedDate = @receivedDate, 
     PropertyClassification = @propertyClassification, 
     ProjectImage = @projectImage 

     where 
     ID = @projectid 

    UPDATE ProjectDetails 

    SET 
     ProjectDetailName = @ProjectDetailName, 
     ProjectDetailImage = @ProjectDetailImage 

     where 
     ID = @projectid 
+1

ID或許應該在最後被專案編號where子句。 (第35行) –

+0

您的表中不存在id列 –

+0

您可以顯示2個表的模式嗎?同意@JohnPasquet。這個錯誤也很自我解釋。可能不需要在這裏問我們。 –

回答

2

使用無效的列,對於正確的更新語句見下:

UPDATE ProjectDetails 
SET 
ProjectDetailName = @ProjectDetailName, 
ProjectDetailImage = @ProjectDetailImage 
where ProjectID= @projectid 
3

「行35」倒數至35行。你會看到這是指你最後的where子句:「ID = @projectid」 。

錯誤告訴你此列不存在。由於這是ProjectDetails表,我想你可能已經調用了這個列「ProjectID」而不是「ID」,這是你在Projects表上使用的。

因此,可能會將WHERE子句更改爲ProjectID = @projectid

+0

你可以編輯你的答案,因爲他發佈了他的數據列 –

+0

錯誤的好解釋 – HLGEM