Ваша ошибка не воспроизводится. Я выполнил следующий тест и получил сообщение (затронуто 2 строк) без сообщения об ошибке. Вы должны делать что-то, кроме того, что вы описываете в своем вопросе:
CREATE TABLE TABLE_MASTER (
ID int
, COL int
, CONSTRAINT PK_TM
PRIMARY KEY (ID, COL)
);
INSERT INTO TABLE_MASTER VALUES
(1000,0)
,(2000,0)
,(3000,0)
;
CREATE TABLE TABLE_B (
ID int
, ID_MASTER int
, COL int
, CONSTRAINT PK_TB
PRIMARY KEY (ID)
, CONSTRAINT FKTABLE_B_ID
FOREIGN KEY (ID_MASTER, COL)
REFERENCES TABLE_MASTER(ID, COL)
);
INSERT INTO TABLE_B VALUES
(1,1000,0)
,(2,1000,0)
,(3,2000,0)
,(4,2000,0)
;
CREATE TABLE Source (
FROM_ID int
, TO_ID int
)
INSERT INTO Source VALUES (1000,3000);
UPDATE
P
SET
P.ID_MASTER = N.TO_ID,
P.COL = 0
/*SELECT N.TO_ID,* --JUST FOR CHECK THE ROWS BEING UPDATED*/
FROM TABLE_B P
INNER JOIN Source N
ON N.FROM_ID = P.ID_MASTER
WHERE P.ID_MASTER = 1000