2017-08-04 112 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