([object_id] = @table_id)
and (column_id = @col_id)
-- Если столбец не имеет свойства idenity и не является вычисляемым
if ((@is_iden <> 1) and (@is_comp <>1))
Begin
-- Получаем название типа данных для этого столбца
set @type_name = (select name from sys.types
where system_type_id = @type_id)
/*
Используя команду EXECUTE и конструирование пакета SQL команд в строковом виде с помощью операции конкатенации строк выполняем следующие действия:
1. Объявляем курсор по таблице #temp_ins, хранящий измененные значения обрабатываемого столбца и значения первичного ключа.
2. Объявляем переменные, которые будут использоваться при получении значений текущей строки курсора.
3. Запускаем цикл, в котором перебираем по очереди все строки курсора.
4. В этом цикле получаем значение измененного столбца для текущей строки, а также значение первичного ключа и конструируем соответствующую команду update, которая для обрабатываемого столбца изменяет его значения на полученное при совпадении первичных ключей.
5. По окончании цикла закрываем курсор.
Следует отметить, что для таблиц, где возможно изменение первичного ключа требуется более сложный алгоритм, т.к. изменяемый столбец может оказаться элементом первичного ключа.
*/