После всех моих оптимизаций я обнаружил, что для хранимой инструкции SELECT требуется много времени, поскольку она содержит функцию в условии выбора и где.пожалуйста, помогите мне переписать оператор выбора.
if OBJECT_ID('QATR_TestCase0003_ElementElIDContainsUpperCase')
is not null drop table QATR_TestCase0003_ElementElIDContainsUpperCase
select elid, tsmkey, dbo.[ContainCapLetter](elid) ContaintCap ,
cast('Element elid '+elid+' contains UPPER CASE in GenProductsAll ' as
nvarchar(255)) datastatus
into QATR_TestCase0003_ElementElIDContainsUpperCase from TblGenProductsAll
where dbo.[ContainCapLetter](elid) <>0
ниже моя функция, которую я написал:
CREATE FUNCTION [dbo].[ContainCapLetter] (@str1 as nvarchar(255))
RETURNS int
BEGIN
declare @j int, @i int
set @i=0
select @j = len(@str1)
while @j >0
begin
If unicode(left(@str1,1)) not between 64 and 91
begin
set @str1 = right(@str1,len(@str1)-1)
select @j= len(@str1)
end
Else If unicode(left(@str1,1)) between 64 and 91
begin
set @i= 1
set @j= 0
end
end
return @i
END