Avatar of COASTCOMP
COASTCOMPFlag for United States of America

asked on 

Replace Column Name

Hello all,

I tried to replace a column name in a MSSQL2000 database from 110(old) to 1100 (new name) with the following command line:

"UPDATE LABOR_TICKET SET RESOURCE_ID = '1100'
WHERE RESOURCE_ID = '110'"

and got this error : "Server: Msg 50000, Level 16, State 1, Procedure UPDATE_LABOR_TICKET, Line 273"

What did I do wrong here?

Please help.

Thanks
Microsoft SQL ServerSQL

Avatar of undefined
Last Comment
COASTCOMP
SOLUTION
Avatar of Guy Hengel [angelIII / a3]
Guy Hengel [angelIII / a3]
Flag of Luxembourg image

Blurred text
THIS SOLUTION IS ONLY AVAILABLE TO MEMBERS.
View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
See Pricing Options
Start Free Trial
Avatar of erikTsomik
erikTsomik
Flag of United States of America image

what is datatype of the  SET RESOURCE_ID . It probably char(3). IF IT IS THEN CHANGE TO CHAR(4)
Avatar of Chalito1222
Chalito1222

This is what you want to do:

ALTER TABLE LABOR_TICKET
 RENAME COLUMN 110  to 1100

Avatar of COASTCOMP
COASTCOMP
Flag of United States of America image

ASKER

Chalito1222:
I got this error when I tried your suggestion: Server: Msg 156, Level 15, State 1, Line 2
Incorrect syntax near the keyword 'COLUMN'.

I ran this command from the Query Analyzer. The datatype is varchar(15)
Avatar of Chalito1222
Chalito1222

Try this:

EXEC sp_rename 'LABOR_TICKET.110', '1100', 'COLUMN'
Avatar of COASTCOMP
COASTCOMP
Flag of United States of America image

ASKER

Chalito1222:

Just want to make sure that you are aware that I am using MS sql2000 server.

Thanks
Avatar of COASTCOMP
COASTCOMP
Flag of United States of America image

ASKER

Chalto 1222
Your second suggestion does not work. Got error:

"Server: Msg 15248, Level 11, State 1, Procedure sp_rename, Line 163
Either the parameter @objname is ambiguous or the claimed @objtype (COLUMN) is wrong."

Thanks
remove the double quotes to run the UPDATE:
UPDATE LABOR_TICKET SET RESOURCE_ID = '1100' WHERE RESOURCE_ID = '110'

Open in new window

ps: I think you want to update the DATA, and not the column NAME, right?
Avatar of Chalito1222
Chalito1222

The error "Server: Msg 15248, Level 11, State 1, Procedure sp_rename, Line 163
Either the parameter @objname is ambiguous or the claimed @objtype (COLUMN) is wrong."

Means that the table isn't named "LABOR_TICKET"  or it doesn't have a column named "110".    Is that the case?
Avatar of COASTCOMP
COASTCOMP
Flag of United States of America image

ASKER

Angellll:

Yes, i am updating the DATA, not the Column Name. thx.

Chalito1222: the tables and the column Resourse_ID=110 do exist in the database.
Avatar of Chalito1222
Chalito1222

Then what you want is:

UPDATE LABOR_TICKET SET 1100 = 110

(remove all the quotes)
Avatar of Chalito1222
Chalito1222

or perhaps

UPDATE LABOR_TICKET SET LABOR_TICKET.1100 = LABOR_TICKET.110
Avatar of COASTCOMP
COASTCOMP
Flag of United States of America image

ASKER

Chalito1222:

Thank you for trying to help but please don't answer if you do not know. I do not know much about SQL but I can just tell what you suggested are wrong.

Thanks,
Avatar of Chalito1222
Chalito1222

This is right, but as you can see we weren't clear on whether you were trying to copy data from one column to the next, or trying to rename a column.

This also works:

UPDATE LABOR_TICKET SET [1100] = [110]

Perhaps Angellll would like to weight in.
did you hence try my code suggestion to remove the double quotes around the sql in your query analyser?
Avatar of COASTCOMP
COASTCOMP
Flag of United States of America image

ASKER

Angel!!!;

I added the "" when Iogged the question. My actual statement does not have ""

I think the problem is that there is a contraint between this table (Labor_Ticket) and other table called Shop_resource.

The Labor_Ticket.Resource_ID is a foreign key from Shop_resource.ID . Can I some how drop the contraint, update the two table with new values and re-add the contraint back.

Any idea???

Thank you in advance.
Avatar of COASTCOMP
COASTCOMP
Flag of United States of America image

ASKER

Again, I am trying to update Value for column named Resource_ID from Labor_Ticket table and column named ID from Shop_Resource table.
Avatar of Chalito1222
Chalito1222

Does the Shop_Resource table have the ID 1100 ?

You'll need to add that first.  Then you can make your update as you originally tried.  Or if you remove the constraint you'll not be able to add it back without a record with the ID of 1100 in that table.
is there a trigger on table LABOR_TICKET ?
Avatar of COASTCOMP
COASTCOMP
Flag of United States of America image

ASKER

Angellll:
I am not sure. How do I find out?
Avatar of COASTCOMP
COASTCOMP
Flag of United States of America image

ASKER

Yes, there is a trigger on table Labor_Ticket as below



CREATE TRIGGER UPDATE_LABOR_TICKET ON LABOR_TICKET FOR UPDATE AS
SET NOCOUNT ON
DECLARE
  @nRcd                       INT
, @CostingStdLabor            CHAR
, @CostingMethod              CHAR
, @NewCompletedQty            DECIMAL(14,4)
, @QtyOver                    DECIMAL(14,4)
, @Ratio1                     DECIMAL(14,4)
, @Ratio2                     DECIMAL(14,4)
, @TotalLaborCost             DECIMAL(15,2)
, @TotalBurdenCost            DECIMAL(15,2)
, @nLaborCost                 DECIMAL(15,2)
, @oLaborCost                 DECIMAL(15,2)
, @nBurdenCost                DECIMAL(15,2)
, @oBurdenCost                DECIMAL(15,2)
, @nSetupHrs                  DECIMAL(7,2)
, @oSetupHrs                  DECIMAL(7,2)
, @nRunHrs                    DECIMAL(7,2)
, @oRunHrs                    DECIMAL(7,2)
, @TRANSACTION_ID             INT
, @N_POSTING_CANDIDATE        CHAR
, @N_SETUP_COMPLETED          CHAR
, @N_MULTIPLIER_1             DECIMAL(5,3)
, @N_MULTIPLIER_2             DECIMAL(5,3)
, @N_HOURS_WORKED             DECIMAL(7,2)
, @N_GOOD_QTY                 DECIMAL(14,4)
, @N_HOURLY_COST              DECIMAL(15,2)
, @N_BAD_QTY                  DECIMAL(14,4)
, @N_UNIT_COST                DECIMAL(15,6)
, @N_BURDEN_PERCENT           DECIMAL(6,3)
, @N_BURDEN_PER_HR            DECIMAL(15,2)
, @N_BURDEN_PER_UNIT          DECIMAL(15,6)
, @N_BUR_PER_OPERATION        DECIMAL(15,2)
, @N_ACT_LABOR_COST           DECIMAL(15,2)
, @N_ACT_BURDEN_COST          DECIMAL(15,2)
, @O_POSTING_CANDIDATE        CHAR
, @O_SETUP_COMPLETED          CHAR
, @O_MULTIPLIER_1             DECIMAL(5,3)
, @O_MULTIPLIER_2             DECIMAL(5,3)
, @O_HOURS_WORKED             DECIMAL(7,2)
, @O_GOOD_QTY                 DECIMAL(14,4)
, @O_HOURLY_COST              DECIMAL(15,2)
, @O_BAD_QTY                  DECIMAL(14,4)
, @O_UNIT_COST                DECIMAL(15,6)
, @O_BURDEN_PERCENT           DECIMAL(6,3)
, @O_BURDEN_PER_HR            DECIMAL(15,2)
, @O_BURDEN_PER_UNIT          DECIMAL(15,6)
, @O_BUR_PER_OPERATION        DECIMAL(15,2)
, @O_ACT_LABOR_COST           DECIMAL(15,2)
, @O_ACT_BURDEN_COST          DECIMAL(15,2)
, @TYPE                       CHAR
, @TRANSACTION_DATE           DATETIME
, @WORKORDER_TYPE             CHAR
, @WORKORDER_BASE_ID          VARCHAR(30)
, @WORKORDER_LOT_ID           VARCHAR(3)
, @WORKORDER_SPLIT_ID         VARCHAR(3)
, @WORKORDER_SUB_ID           VARCHAR(3)
, @OPERATION_SEQ_NO           SMALLINT
, @CALC_END_QTY               DECIMAL(14,4)
, @COMPLETED_QTY              DECIMAL(14,4)
, @EST_LABOR_COST             DECIMAL(15,2)
, @EST_BURDEN_COST            DECIMAL(15,2)
, @STATUS                     CHAR
, @CLOSE_DATE                 DATETIME
SELECT @nRcd = 0
IF UPDATE(ACT_LABOR_COST) AND UPDATE(ACT_BURDEN_COST)
   RETURN
IF @nRcd = 0
BEGIN
IF EXISTS ( SELECT * FROM INSERTED I, DELETED D WHERE I.ROWID = D.ROWID AND
    (  I.TYPE               != D.TYPE
    OR I.WORKORDER_TYPE     != D.WORKORDER_TYPE
    OR I.WORKORDER_BASE_ID  != D.WORKORDER_BASE_ID
    OR I.WORKORDER_LOT_ID   != D.WORKORDER_LOT_ID
    OR I.WORKORDER_SPLIT_ID != D.WORKORDER_SPLIT_ID
    OR I.WORKORDER_SUB_ID   != D.WORKORDER_SUB_ID
    OR I.OPERATION_SEQ_NO   != D.OPERATION_SEQ_NO
    OR I.EMPLOYEE_ID        != D.EMPLOYEE_ID
    OR I.RESOURCE_ID        != D.RESOURCE_ID ))
  SELECT @nRcd = 31028
END
IF @nRcd = 0 AND ( UPDATE (BURDEN_PERCENT) OR UPDATE (HOURS_WORKED) OR UPDATE (BURDEN_PER_HR) OR UPDATE (GOOD_QTY)
   OR UPDATE (BAD_QTY) OR UPDATE (BURDEN_PER_UNIT) OR UPDATE(BUR_PER_OPERATION) )
BEGIN
  UPDATE LABOR_TICKET SET
    ACT_LABOR_COST = ISNULL((I.HOURS_WORKED * I.HOURLY_COST * I.MULTIPLIER_1 * I.MULTIPLIER_2) + ((I.GOOD_QTY + I.BAD_QTY) * I.UNIT_COST), 0),
    ACT_BURDEN_COST = ISNULL((((I.HOURS_WORKED * I.HOURLY_COST * I.MULTIPLIER_1 * I.MULTIPLIER_2) + ((I.GOOD_QTY + I.BAD_QTY) * I.UNIT_COST))
    * (I.BURDEN_PERCENT/100)) + (I.HOURS_WORKED * I.BURDEN_PER_HR) + ((I.GOOD_QTY + I.BAD_QTY) * I.BURDEN_PER_UNIT) + I.BUR_PER_OPERATION, 0)
  FROM
    INSERTED I, LABOR_TICKET L
  WHERE
    I.TRANSACTION_ID = L.TRANSACTION_ID
END
IF @nRcd = 0
BEGIN
  DECLARE LABOR_TICKET_UPD CURSOR LOCAL FOR SELECT
      I.TRANSACTION_ID, I.TYPE, I.POSTING_CANDIDATE, I.SETUP_COMPLETED, I.TRANSACTION_DATE,
      I.WORKORDER_TYPE, I.WORKORDER_BASE_ID, I.WORKORDER_LOT_ID, I.WORKORDER_SPLIT_ID, I.WORKORDER_SUB_ID, I.OPERATION_SEQ_NO,
      I.MULTIPLIER_1, I.MULTIPLIER_2, ISNULL(I.HOURS_WORKED, 0), ISNULL(I.GOOD_QTY, 0), ISNULL(I.HOURLY_COST, 0),
      ISNULL(I.BAD_QTY, 0), ISNULL(I.UNIT_COST, 0),
      ISNULL(I.BURDEN_PERCENT, 0), ISNULL(I.BURDEN_PER_HR, 0), ISNULL(I.BURDEN_PER_UNIT, 0),
      ISNULL(I.BUR_PER_OPERATION,0), ISNULL(I.ACT_LABOR_COST,0),  ISNULL(I.ACT_BURDEN_COST, 0),
      D.MULTIPLIER_1, D.MULTIPLIER_2, ISNULL(D.HOURS_WORKED, 0), ISNULL(D.GOOD_QTY,0), ISNULL(D.HOURLY_COST,0),
      ISNULL(D.BAD_QTY, 0), ISNULL(D.UNIT_COST, 0),
      ISNULL(D.BURDEN_PERCENT,0),  ISNULL(D.BURDEN_PER_HR,0),  ISNULL(D.BURDEN_PER_UNIT,0),
      ISNULL(D.BUR_PER_OPERATION,0),  ISNULL(D.ACT_LABOR_COST,0),  ISNULL(D.ACT_BURDEN_COST,0),
      D.POSTING_CANDIDATE, D.SETUP_COMPLETED
    FROM inserted I, DELETED D WHERE I.ROWID = D.ROWID
  OPEN LABOR_TICKET_UPD
  FETCH LABOR_TICKET_UPD INTO
      @TRANSACTION_ID, @TYPE, @N_POSTING_CANDIDATE, @N_SETUP_COMPLETED, @TRANSACTION_DATE,
      @WORKORDER_TYPE, @WORKORDER_BASE_ID, @WORKORDER_LOT_ID, @WORKORDER_SPLIT_ID, @WORKORDER_SUB_ID, @OPERATION_SEQ_NO,
      @N_MULTIPLIER_1, @N_MULTIPLIER_2, @N_HOURS_WORKED, @N_GOOD_QTY, @N_HOURLY_COST, @N_BAD_QTY, @N_UNIT_COST,
      @N_BURDEN_PERCENT, @N_BURDEN_PER_HR, @N_BURDEN_PER_UNIT, @N_BUR_PER_OPERATION, @N_ACT_LABOR_COST , @N_ACT_BURDEN_COST ,
      @O_MULTIPLIER_1, @O_MULTIPLIER_2, @O_HOURS_WORKED, @O_GOOD_QTY, @O_HOURLY_COST, @O_BAD_QTY, @O_UNIT_COST,
      @O_BURDEN_PERCENT, @O_BURDEN_PER_HR, @O_BURDEN_PER_UNIT, @O_BUR_PER_OPERATION, @O_ACT_LABOR_COST , @O_ACT_BURDEN_COST,
      @O_POSTING_CANDIDATE, @O_SETUP_COMPLETED
  WHILE (@nRcd = 0 and @@FETCH_STATUS <> -1)
  BEGIN
    IF   @N_POSTING_CANDIDATE!= @O_POSTING_CANDIDATE
      OR @N_SETUP_COMPLETED!= @O_SETUP_COMPLETED
      OR @N_MULTIPLIER_1!= @O_MULTIPLIER_1
      OR @N_MULTIPLIER_2!= @O_MULTIPLIER_2
      OR @N_HOURS_WORKED!= @O_HOURS_WORKED
      OR @N_GOOD_QTY!= @O_GOOD_QTY
      OR @N_BAD_QTY!= @O_BAD_QTY
      OR @N_HOURLY_COST!= @O_HOURLY_COST
      OR @N_UNIT_COST!= @O_UNIT_COST
      OR @N_BURDEN_PER_HR!= @O_BURDEN_PER_HR
      OR @N_BURDEN_PER_UNIT!= @O_BURDEN_PER_UNIT
   OR @N_BURDEN_PERCENT!= @O_BURDEN_PERCENT
      OR @N_BUR_PER_OPERATION != @O_BUR_PER_OPERATION
    BEGIN
      SELECT @CostingStdLabor = costing_std_labor, @CostingMethod = costing_method FROM APPLICATION_GLOBAL
      SELECT @CALC_END_QTY = calc_end_qty,
        @COMPLETED_QTY = completed_qty,
        @EST_LABOR_COST = est_atl_lab_cost,
        @EST_BURDEN_COST = est_atl_bur_cost,
        @STATUS = status,
        @CLOSE_DATE = close_date
      FROM OPERATION
      WHERE workorder_type         = @WORKORDER_TYPE
        and workorder_base_id  = @WORKORDER_BASE_ID
        and workorder_lot_id   = @WORKORDER_LOT_ID
        and workorder_split_id = @WORKORDER_SPLIT_ID
        and workorder_sub_id   = @WORKORDER_SUB_ID
        and sequence_no        = @OPERATION_SEQ_NO
      SELECT @NewCompletedQty = @COMPLETED_QTY - @O_GOOD_QTY + @N_GOOD_QTY
      IF @CostingMethod = 'S' And @CostingStdLabor = 'Q' And @TYPE != 'I'
      BEGIN
        SELECT @Ratio1 = 0
        SELECT @Ratio2 = 0
        IF @CALC_END_QTY != 0
        BEGIN
          SELECT @Ratio1 = @NewCompletedQty / @CALC_END_QTY
          SELECT @Ratio2 = @N_GOOD_QTY / @CALC_END_QTY
        END
        SELECT @TotalLaborCost  = @EST_LABOR_COST  * @Ratio1
        SELECT @TotalBurdenCost = @EST_BURDEN_COST * @Ratio1
        SELECT @nLaborCost      = @EST_LABOR_COST  * @Ratio2
        SELECT @nBurdenCost     = @EST_BURDEN_COST * @Ratio2
      END
      ELSE
      BEGIN
        SELECT @oLaborCost  = (@O_HOURS_WORKED * @O_HOURLY_COST * @O_MULTIPLIER_1 * @O_MULTIPLIER_2) + ((@O_GOOD_QTY + @O_BAD_QTY) * @O_UNIT_COST)
        --kek106043 use original value for old in case it was changed by costing
        --SELECT @oBurdenCost = (@oLaborCost * (@O_BURDEN_PERCENT/100)) + (@O_HOURS_WORKED * @O_BURDEN_PER_HR) + ((@O_GOOD_QTY + @O_BAD_QTY) * @O_BURDEN_PER_UNIT) + @O_BUR_PER_OPERATION
        SELECT @oBurdenCost = @O_ACT_BURDEN_COST
        SELECT @nLaborCost  = (@N_HOURS_WORKED * @N_HOURLY_COST * @N_MULTIPLIER_1 * @N_MULTIPLIER_2) + ((@N_GOOD_QTY + @N_BAD_QTY) * @N_UNIT_COST)
        SELECT @nBurdenCost = (@nLaborCost * (@N_BURDEN_PERCENT/100)) + (@N_HOURS_WORKED * @N_BURDEN_PER_HR) + ((@N_GOOD_QTY + @N_BAD_QTY) * @N_BURDEN_PER_UNIT) + @N_BUR_PER_OPERATION
      END
      --kek104449 update posting candidate and costs
      IF (@TYPE = 'I' And (@nLaborCost != @oLaborCost Or @nBurdenCost != @oBurdenCost))
        SELECT @N_POSTING_CANDIDATE = 'Y'
      SELECT @N_ACT_LABOR_COST  = @nLaborCost + .005
      SELECT @N_ACT_BURDEN_COST = @nBurdenCost + .005
      UPDATE LABOR_TICKET SET
        POSTING_CANDIDATE = @N_POSTING_CANDIDATE,
        ACT_LABOR_COST  = @nLaborCost,
        ACT_BURDEN_COST = @nBurdenCost
      WHERE TRANSACTION_ID = @TRANSACTION_ID
      IF @TYPE != 'I'
      BEGIN
        IF @TYPE = 'R'
        BEGIN
          SELECT @N_SETUP_COMPLETED = 'Y'
          SELECT @oSetupHrs = 0
          SELECT @nSetupHrs = 0
          SELECT @oRunHrs = @O_HOURS_WORKED
          SELECT @nRunHrs = @N_HOURS_WORKED
        END
        ELSE
        BEGIN
          SELECT @oSetupHrs = @O_HOURS_WORKED
          SELECT @nSetupHrs = @N_HOURS_WORKED
          SELECT @oRunHrs = 0
          SELECT @nRunHrs = 0
        END
        IF @NewCompletedQty >= @CALC_END_QTY
        BEGIN
          SELECT @STATUS = 'C'
          SELECT @CLOSE_DATE = @TRANSACTION_DATE
        END
        IF (@CostingMethod = 'S' And @CostingStdLabor = 'Q')
          UPDATE OPERATION SET
            act_atl_lab_cost = ROUND(@TotalLaborCost, 2),
            act_atl_bur_cost = ROUND(@TotalBurdenCost, 2),
            completed_qty = completed_qty - @O_GOOD_QTY + @N_GOOD_QTY,
            deviated_qty = deviated_qty - @O_BAD_QTY + @N_BAD_QTY,
            act_setup_hrs = act_setup_hrs - @oSetupHrs + @nSetupHrs,
            act_run_hrs = act_run_hrs - @oRunHrs + @nRunHrs,
            setup_completed = @N_SETUP_COMPLETED,
            status = @STATUS,
            close_date = @CLOSE_DATE
          WHERE workorder_type = @WORKORDER_TYPE
            and workorder_base_id = @WORKORDER_BASE_ID
            and workorder_lot_id = @WORKORDER_LOT_ID
            and workorder_split_id = @WORKORDER_SPLIT_ID
            and workorder_sub_id = @WORKORDER_SUB_ID
            and sequence_no = @OPERATION_SEQ_NO
        ELSE
          UPDATE OPERATION SET
            act_atl_lab_cost = act_atl_lab_cost - ROUND(@oLaborCost, 2) + round(@nLaborCost, 2),
            act_atl_bur_cost = act_atl_bur_cost - ROUND(@oBurdenCost, 2) + round(@nBurdenCost, 2),
            completed_qty = completed_qty - @O_GOOD_QTY + @N_GOOD_QTY,
            deviated_qty = deviated_qty - @O_BAD_QTY + @N_BAD_QTY,
            act_setup_hrs = act_setup_hrs - @oSetupHrs + @nSetupHrs,
            act_run_hrs = act_run_hrs - @oRunHrs + @nRunHrs,
            setup_completed = @N_SETUP_COMPLETED,
            status = @STATUS,
            close_date = @CLOSE_DATE
          WHERE workorder_type = @WORKORDER_TYPE
            and workorder_base_id = @WORKORDER_BASE_ID
            and workorder_lot_id = @WORKORDER_LOT_ID
            and workorder_split_id = @WORKORDER_SPLIT_ID
            and workorder_sub_id = @WORKORDER_SUB_ID
            and sequence_no = @OPERATION_SEQ_NO
      END
    END
    UPDATE WORK_ORDER SET DESIRED_QTY = DESIRED_QTY * 1
    WHERE type = @WORKORDER_TYPE
      and base_id = @WORKORDER_BASE_ID
      and lot_id = @WORKORDER_LOT_ID
      and split_id = @WORKORDER_SPLIT_ID
      and sub_id = '0'
    UPDATE EQUIP_PM_SCHEDULE SET INVOICE_FLAG = 'R'
    WHERE workorder_type = @WORKORDER_TYPE
      AND workorder_base_id = @WORKORDER_BASE_ID
      AND workorder_lot_id = @WORKORDER_LOT_ID
      AND workorder_split_id = @WORKORDER_SPLIT_ID
      AND workorder_sub_id = @WORKORDER_SUB_ID
      AND cust_order_id is not NULL
    UPDATE UNP_MNT_CALLS SET INVOICE_FLAG = 'R'
    WHERE workorder_type = @WORKORDER_TYPE
      AND workorder_base_id = @WORKORDER_BASE_ID
      AND workorder_lot_id = @WORKORDER_LOT_ID
      AND workorder_split_id = @WORKORDER_SPLIT_ID
      AND workorder_sub_id = @WORKORDER_SUB_ID
      AND cust_order_id is not NULL
    FETCH LABOR_TICKET_UPD INTO
      @TRANSACTION_ID, @TYPE, @N_POSTING_CANDIDATE, @N_SETUP_COMPLETED, @TRANSACTION_DATE,
      @WORKORDER_TYPE, @WORKORDER_BASE_ID, @WORKORDER_LOT_ID, @WORKORDER_SPLIT_ID, @WORKORDER_SUB_ID, @OPERATION_SEQ_NO,
      @N_MULTIPLIER_1, @N_MULTIPLIER_2, @N_HOURS_WORKED, @N_GOOD_QTY, @N_HOURLY_COST, @N_BAD_QTY, @N_UNIT_COST,
      @N_BURDEN_PERCENT, @N_BURDEN_PER_HR, @N_BURDEN_PER_UNIT, @N_BUR_PER_OPERATION, @N_ACT_LABOR_COST , @N_ACT_BURDEN_COST ,
      @O_MULTIPLIER_1, @O_MULTIPLIER_2, @O_HOURS_WORKED, @O_GOOD_QTY, @O_HOURLY_COST, @O_BAD_QTY, @O_UNIT_COST,
      @O_BURDEN_PERCENT, @O_BURDEN_PER_HR, @O_BURDEN_PER_UNIT, @O_BUR_PER_OPERATION, @O_ACT_LABOR_COST , @O_ACT_BURDEN_COST,
      @N_POSTING_CANDIDATE, @O_SETUP_COMPLETED
  --kek101896 don't dealocate in loop removed cursor is declared local
  --DEALLOCATE LABOR_TICKET_UPD
  END
END
IF (@nRcd <> 0) RAISERROR('VMFG-%d error in trigger UPDATE_LABOR_TICKET', 16, -1, @nRcd)
IF (@nRcd <> 0 Or @@ERROR <> 0) ROLLBACK TRANSACTION
right-click the table, and see "manage indexes..."
so, your trigger raises a error via the second last line of the trigger:

IF (@nRcd <> 0) RAISERROR('VMFG-%d error in trigger UPDATE_LABOR_TICKET', 16, -1, @nRcd)

and there is only 1 place in the trigger code setting @nRcd.

and exactly that part disallows to update the RESOURCE_ID column value !!!
IF EXISTS ( SELECT * FROM INSERTED I, DELETED D WHERE I.ROWID = D.ROWID AND
    (  I.TYPE               != D.TYPE
    OR I.WORKORDER_TYPE     != D.WORKORDER_TYPE
    OR I.WORKORDER_BASE_ID  != D.WORKORDER_BASE_ID
    OR I.WORKORDER_LOT_ID   != D.WORKORDER_LOT_ID
    OR I.WORKORDER_SPLIT_ID != D.WORKORDER_SPLIT_ID
    OR I.WORKORDER_SUB_ID   != D.WORKORDER_SUB_ID
    OR I.OPERATION_SEQ_NO   != D.OPERATION_SEQ_NO
    OR I.EMPLOYEE_ID        != D.EMPLOYEE_ID
    OR I.RESOURCE_ID        != D.RESOURCE_ID ))
  SELECT @nRcd = 31028
END

Open in new window

Avatar of COASTCOMP
COASTCOMP
Flag of United States of America image

ASKER

angelll:

What is your suggestion?? is there a way to save the triggers, remove them, update the column data and add the triggers back?
you have several options:

comment out this line (I think, the preferred method)
OR I.RESOURCE_ID        != D.RESOURCE_ID
> take care you don't comment out the )) at that line ...


or you comment out either of the following 2 lines:
SELECT @nRcd = 31028
IF (@nRcd <> 0) RAISERROR('VMFG-%d error in trigger UPDATE_LABOR_TICKET', 16, -1, @nRcd)

save the trigger, run your update, and then re-save the trigger with original script.

Avatar of COASTCOMP
COASTCOMP
Flag of United States of America image

ASKER

Thanks. I will give it a try tomorrow.
ASKER CERTIFIED SOLUTION
Avatar of COASTCOMP
COASTCOMP
Flag of United States of America image

Blurred text
THIS SOLUTION IS ONLY AVAILABLE TO MEMBERS.
View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
Microsoft SQL Server
Microsoft SQL Server

Microsoft SQL Server is a suite of relational database management system (RDBMS) products providing multi-user database access functionality.SQL Server is available in multiple versions, typically identified by release year, and versions are subdivided into editions to distinguish between product functionality. Component services include integration (SSIS), reporting (SSRS), analysis (SSAS), data quality, master data, T-SQL and performance tuning.

171K
Questions
--
Followers
--
Top Experts
Get a personalized solution from industry experts
Ask the experts
Read over 600 more reviews

TRUSTED BY

IBM logoIntel logoMicrosoft logoUbisoft logoSAP logo
Qualcomm logoCitrix Systems logoWorkday logoErnst & Young logo
High performer badgeUsers love us badge
LinkedIn logoFacebook logoX logoInstagram logoTikTok logoYouTube logo