Как бы вы осуществили эту проверку?У вас есть N параметров для хранимой процедуры.
Если все значения имеют значение null или 0 или пустую строку, запустите код, иначе пропустите его
Вот как я это реализовал, есть ли лучший способ?
Мне действительно не нравится то, что я сделал, поэтому я открыт для любой лучшей идеи, должен быть легко поддерживаемым, поскольку это будет сделано во многих местах
declare @doRunIt bit
declare @checkAllNull varchar(max)
declare @sumOfInt int
set @checkAllNull = ''
set @checkAllNull = @checkAllNull + coalesce(@param1,'')
set @checkAllNull = @checkAllNull + coalesce(@param2,'')
set @checkAllNull = @checkAllNull + coalesce(@param3,'')
set @checkAllNull = @checkAllNull + coalesce(@param4,'')
set @checkAllNull = @checkAllNull + coalesce(@param5,'')
set @checkAllNull = @checkAllNull + coalesce(@param6,'')
set @sumOfInt = coalesce(@param7,0)+coalesce(@param8,0)+
coalesce(@param9,0)+coalesce(@param10,0)+
coalesce(@param11,0)+coalesce(@param12,0)
set @checkAllNull = @checkAllNull + cast(@sumOfInt as varchar(max))
if ( isnumeric(@checkAllNull)=1 )
if (cast(@checkAllNull as int) > 0)
set @doRunIt = 1
else
set @doRunIt = 0
else
if (ltrim(rtrim(@checkAllNull)) <> '')
set @doRunIt = 1
else
set @doRunIt = 0
Конечная цель -перенести проверку, выполненную в коде для вставки пустой строки, если все параметры равны нулю или используют значение по умолчанию, в БД в хранимую процедуру, чтобы другие приложения могли вызывать ту же хранимую процедуру без необходимости проверять наличие пустой строки.