Обновление таблицы путем выполнения процедуры T-SQL - PullRequest
0 голосов
/ 05 июля 2019

Мне нужно обновить столбец в каждой пустой строке данными из процедуры.

Проблема в том, что мне нужно уникальное значение для каждой записи.Процедура возвращает его, но я не знаю, как это сделать.

Результаты, которые я получил до сих пор, одинаковы в каждой строке - помните, что когда я выполняю процедуру, она проверяет таблицу на наличие существующих значений и выдает мнеуникальная ценность.Как мне каждый раз обновлять другое значение с помощью этой процедуры?

declare @ean varchar(40)

exec dbo.generateEAN 1, '', @ean output

update t 
set Twr_Ean = @ean 
from dbo.table t  
where t.Code = ''

1 Ответ

0 голосов
/ 06 июля 2019

Попробуйте скалярные функции?Возможно, проще, чем хранимые процедуры для встроенного оператора обновления.Вот простой фрагмент.Но производительность снижается при работе с большим набором данных.Вы можете переосмыслить подход к проблеме.

create функция dbo.ufn_mypower (@x int)
возвращает int с execute в качестве вызывающей стороны, когда
begin return power (@x, 2)
end
go

создание таблицы updatewithfunction (оригинальное значение int null
, вычисленное значение int null)

вставка updatewithfunction (originalvalue) значений (1), (2), (3), (4), (5)), (6)

обновить обновление с набором функций рассчитанное значение = dbo.ufn_mypower (оригинальное значение)
где вычисленное значение равно нулю, а исходное значение> = 4

выбрать * из обновления с функцией

...