简体   繁体   中英

Invalid column name error in SQL Server after adding new column

First the solution is working perfect, and after as per our Project Manager requirement I have added two column in table. After that one insert,update store procedure is not working it show "Invalid column name" (it mention newly inserted two column name). I think some details is stored in temporary but I don't know how to find and solve it.

I tried something like this:

  • Removed all constrain and tried to run the store procedure, but no use

  • Just removed the newly added two column, it is working perfect.

  • Tried to add the column through an Alter query

My stored procedure is

ALTER PROCEDURE [Page].[SP_INSERT_EXPERIENCEDETAILS]
    (@EXPERIENCEDETAILS [PAGE].[EXPERIENCEDETAILS] READONLY)
AS  --drop  PROCEDURE [Page].[SP_INSERT_EXPERIENCEDETAILS]
BEGIN
    DECLARE @TEMPTABLE AS TABLE
                           (
                              ID INT,
                              [ACTION] VARCHAR(50)
                           )

    MERGE INTO [PAGE].[EXPERIENCEDETAILS] AS TARGET
    USING (SELECT 
               ID, Description, ISCurrent, COMPANYID,
               Designationid, locationid, FROMDAY, FromMonth, FromYear,
               TODAY, TOMONTH, Toyear 
           FROM 
               @EXPERIENCEDETAILS) AS SOURCE ON TARGET.ID = SOURCE.ID 

    WHEN MATCHED THEN
       UPDATE
           SET TARGET.[DESCRIPTION] = SOURCE.[DESCRIPTION],
               TARGET.ISCURRENT = SOURCE.ISCURRENT,
               TARGET.COMPANYID = SOURCE.COMPANYID,
               TARGET.DESIGNATIONID = SOURCE.DESIGNATIONID,
               TARGET.LOCATIONID = SOURCE.LOCATIONID,
               TARGET.FROMDAY = SOURCE.FROMDAY,
               TARGET.FROMMONTH = SOURCE.FROMMONTH,
               TARGET.FROMYEAR = SOURCE.FROMYEAR,
               TARGET.TODAY = SOURCE.TODAY,
               TARGET.TOMONTH = SOURCE.TOMONTH,
               TARGET.TOYEAR = SOURCE.TOYEAR

    WHEN NOT MATCHED THEN
       INSERT 
         VALUES (SOURCE.MEMBERID, SOURCE.PAGEID, SOURCE.COMPANYID,
                 SOURCE.DESIGNATIONID, SOURCE.LOCATIONID, 
                 SOURCE.FROMDAY, SOURCE.FROMMONTH, SOURCE.FROMYEAR,
                 SOURCE.TODAY, SOURCE.TOMONTH, SOURCE.TOYEAR,
                 SOURCE.[DESCRIPTION], SOURCE.[ISCURRENT], 
                 SOURCE.ENTRYDATE)

    OUTPUT INSERTED.ID, $ACTION INTO @TEMPTABLE;

    SELECT ID FROM @TEMPTABLE
END

Error shown in the following lines

  1. TARGET.FROMDAY= SOURCE.FROMDAY
  2. TARGET.TODAY=SOURCE.TODAY
  3. SOURCE.FROMDAY
  4. SOURCE.TODAY

您还应该在 SP 中用作 TVP 类型的表类型[PAGE].[EXPERIENCEDETAILS]中添加这些列。

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM