Если у вас есть права на создание функций, вы можете также рассмотреть возможность реализации логики c таким образом, чтобы сделать код непротиворечивым, повторно используемым и совместно используемым. Этот подход удобен для аналитиков данных или администраторов баз данных, которым необходимо часто выполнять обычную логику очистки данных.
Набор тестовых данных
use [testdb];
if OBJECT_ID('testdb..test') is not null
drop table testdb..test;
create table test (
DataName varchar(50),
DataValue varchar(50),
);
insert into test (DataName, DataValue)
values ('name1', NULL),('name2', NULL),('name3', NULL);
select * from test;
GO
Положите свои логи c в многократно используемую функцию
if OBJECT_ID('testdb.dbo.myfunc', 'FN') is not null
drop function myfunc;
GO
CREATE FUNCTION dbo.myfunc(@param varchar(100))
RETURNS varchar(100)
AS
BEGIN
-- implement your logic here
declare @ret varchar(max);
if @param = 'name1'
set @ret = @param + '_logic1';
else if @param = 'name2'
set @ret = @param + '_logic2';
else if @param = 'name3'
set @ret = @param + '_logic3';
return @ret;
END
GO
Выполнить
update A
set A.DataValue = dbo.myfunc(A.DataName)
from test as A;
select * from test;
-- DataName DataValue
-- name1 name1_logic1
-- name2 name2_logic2
-- name3 name3_logic3