.... DECLARE @DO_R TABLE ( id_#DO_R INT PRIMARY KEY , id_DO_R INT -- PRIMARY KEY works here !!! , l_MA_Carico_Old SMALLINT ) MERGE dbo.DO_R U USING (SELECT #DR._action ... ) S ... OUTPUT INSERTED.id , S.id , CASE WHEN DELETED.d_Movimento IS NOT NULL AND ISNULL(DELETED.l_MA_Dare,0)<>ISNULL(INSERTED.l_MA_Dare,0) THEN ISNULL(DELETED.l_MA_Dare,0) END -- 0 indica il NULL NULL indica che dare non è il nuovo avere INTO @DO_R ( id_DO_R , id_#DO_R , l_MA_Carico_Old ); ...the error occurs at compile time.