就是采用可被SQL Server优化的一些简单语句实现循环所做的事

解决方案 »

  1.   

    第一个:
    declare @a varchar(8000)
    set @a=@UserLabels ---要头尾没有delimiter,如有,判断并去掉
    select UserDefLabel into #1 from #UserLabels where 1=2
    set @a='insert #1 select '''+replace(@a,@Delimiter,''' insert #1 select ''')+''''
    exec(@a)
    select identity(int,1,1) ID,* into #2 from #1
    insert #UserLabels(sequence, UserDefLabel) select * from #2
      

  2.   

    declare @a varchar(8000)
    set @a=@UserLabels
    if CHARINDEX(@Delimiter,@a)=1 set @a=right(@a,len(@a)-1)
    if CHARINDEX(@Delimiter,@a)=len(@a) set @a=left(@a,len(@a)-1)select UserDefLabel into #1 from #UserLabels where 1=2
    set @a='insert #1 select '''+replace(@a,@Delimiter,''' insert #1 select ''')+''''
    exec(@a)
    select identity(int,1,1) ID,* into #2 from #1
    insert #UserLabels(sequence, UserDefLabel) select * from #2
      

  3.   

    第二个:
    declare @a varchar(8000),@b varchar(8000),@c varchar(1000)
    set @a=ltrim(rtrim(@eventFieldNameIDs)
    set @b=ltrim(rtrim(@showTypes)
    set @c=substring(@sPattern,2,len(@sPattern)-1) --取出中间的短语 去 头尾%---如头尾有@sPattern,取出处理
    --if patindex(@sPattern, @a)=1 select fieldNameID into #1 from #eventFieldNameID where 1=2
    set @a='insert #1 select '''+replace(@a,@c,@c+''' insert #1 select ''')+''''
    exec(@a)
    select identity(int,1,1) ID,* into #2 from #1
    insert #eventFieldNameID(sequence, fieldNameID) select * from #2select showTypeName into #3 from #showType where 1=2
    set @b='insert #3 select '''+replace(@b,@c,@c+''' insert #3 select ''')+''''
    exec(@b)
    select identity(int,1,1) ID,* into #4 from #3
    insert #showType(sequence, showTypeName) select * from #4