단일 매개 변수 문자열을 사용할 수 있습니다. 사용자는 목록의 항목을 쉼표로 구분합니다. 쿼리가 훨씬 더 나 빠졌지 만 쉼표로 구분 된 접두사의 변수 번호의 예가 있습니다.
이 정보가 도움이되기를 바랍니다. 단순하지도 않고 예쁘지도 않습니다. 데이터 세트에서
, 그래서 같은 매개 변수를 사용하여 유사한 쿼리 또는 PROC를 사용하고 작동합니다 :
Declare @prefixes varchar(1000)
set @prefixes='abc,defg,efgh,hij,jkl,mno'
declare @sql nvarchar(max) = ''
declare @currentint int
set @currentint = 1
declare @maxint int
set @maxint = len(@prefixes) - len(replace(@prefixes, ',', '')) + 1
declare @currentcommaposition int
set @sql = 'IF OBJECT_ID(''tempdb..#tempTest'') IS NOT NULL DROP TABLE #tempTest
create table #tempTest
(
ID INT,
name varchar(100)
)
insert into #tempTest
(id,name)
select 1,''abcd''
union
select 2, ''defghijk''
union
select 3,''efghoot''
union
select 4,''hijack''
union
select 5,''jklmo''
union
select 6,''mnopoly''
union
select 7,''pqrstuv''
union
select 8,''tubool''
IF OBJECT_ID(''tempdb..#testresults'') IS NOT NULL DROP TABLE #testresults
create table #testresults
(
id int, name varchar(100)
)
declare @prefixes varchar(100) = ''' + @prefixes + ',''' + char(10) + ' declare @currentint int declare @maxint int = ' + convert(varchar(10),@maxint) + char(10)
while (@currentint <= @maxint)
begin
set @sql = @sql + 'set @currentint = ' + convert(varchar(10),@currentint) + ' declare @suffix' + convert(varchar(2), @currentint) + ' VARCHAR(100)' + char(10)
+ 'set @suffix' + convert(varchar(2), @currentint) + '= substring(@prefixes,0,charindex('','',@prefixes))' + char(10)
+
'set @prefixes=Right(@prefixes,len(@prefixes)-charindex('','',@prefixes))' + char(10) +
'insert into #testresults (id, name)
select id, name from #temptest t where t.name like @suffix' + convert(varchar(2), @currentint) + ' + ''%''' + char(10)
+ 'if (@currentint = @maxint) begin select * from #testresults end ' + char(10)
set @currentint = @currentint + 1
end
exec sp_executesql @sql
안녕하세요 4444 @ 감사하지만 대답은 ... 항상 –
안녕 앤디 더 :
그래서 저장 프로 시저에서 당신은 다음과 같은 문장을 사용합니다. 나는 당신의 질문에 대한 답을 모른다. 나는 그것을 향상시킬 수있는 사람들을 끌어들일 수있는 최선의 방법으로 그것을 개선하고 형식을 정했다. – 4444깨진 링크가있는 질문은 많은 답변을 얻지 못합니다. "내 질문을 편집 해 주셔서 감사합니다." – dazedandconfused