declare @keyword nvarchar(100)
declare @k varchar(23)
set @keyword = '裤子|衣服|鞋子|染彩'
while(charindex('|',@keyword) <> 0)
begin
set @k = 'TS_KW_'+ replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')
+ right(CONVERT(varchar(12) , getdate(), 114),3)
PRINT @c
set @keyword = stuff(@keyword,1,charindex('|',@keyword),'')
end打印出来的@c值都是一样。
循环是有先后顺序的。
难怪快成是在同一时间执行的。
再怎么快。总有先后顺序吧?
declare @k varchar(23)
set @keyword = '裤子|衣服|鞋子|染彩'
IF RIGHT(@keyword,1)<>'|' SET @keyword=@keyword+'|'
while(charindex('|',@keyword) <> 0)
begin
set @k = LEFT(@keyword,charindex('|',@keyword)-1) + replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')
+ right(CONVERT(varchar(12) , getdate(), 114),3)
PRINT @k
set @keyword = stuff(@keyword,1,charindex('|',@keyword),'')
end
/*
裤子20100723163540480
衣服20100723163540480
鞋子20100723163540480
染彩20100723163540480
*/?
它完全有能力在1ms里处理完这次循环
只是做唯一值的话,用标识列,结合timestamp不就好了