2013-06-13 2 views
1

, пожалуйста, помогите мне в этом, как бы я сделал какое-то рекурсивное заявление в моей хранимой процедуре. вот что я хочуmssql генерируя уникальный код

-- @requestcode will genereate some random string i have already the code below 

set @requestcode = (SELECT substring(@username,0,3)+'-'+SUBSTRING(CONVERT(varchar(255), NEWID()), 0, 9)) 

-- then i want to check if the string generated is existing to 'sampletable' 
select @requestcode from sampletable 

-- if it is existing back to the @requestcode query until it is not existing 

заранее спасибо

ответ

3

@requestcode начинается как NULL (если не назначено уже), поэтому первый ПОКА проверка состояния всегда верно, что дает, по крайней мере одна итерация

WHILE @requestcode IS NULL OR 
     EXISTS (SELECT * FROM sampletable WHERE requestcode = @requestcode) 
BEGIN 
    SELECT @requestcode = substring(@username,0,3) + '-' + 
      SUBSTRING(CONVERT(varchar(255), NEWID()), 0, 9)); 
END 
Смежные вопросы