Когда вы создаете столбец remainingfilter
, он имеет неявное преобразование int
Чтобы исправить это, используйте ...,cast(NULL as varchar(max)) remainingfilter
Тем не менее, я бы выбрал concat ()
Пример
Select Cmd = concat('Update ',quotename(tablename),' set ',quotename(updatecolumn),' = ',updatevalue,' And ' + nullif(remainingfilter,''))
From #Temp
Возвращает
Update [CRDB_Reporting] set [MagnitudePackage] = 'XLFWH'