Я написал SQL-запрос, который обеспечивает уникальность имени файла в таблице.Если передаваемый параметр равен NULL
, то перед проверкой ему присваивается случайное значение.
Вот мой код:
SET @FileName=REPLACE(ISNULL(@FileName, dbo.fn_String_GenerateRandom(NEWID(), 10)), ' ', '-')
DECLARE @i int,@FileNameCheck nvarchar(200); SELECT @i=2, @FileNameCheck=@FileName
WHILE (SELECT COUNT(*) FROM [eJournals] WHERE [FileName]=@FileNameCheck) > 0
BEGIN
SELECT @FileNameCheck = @FileName + '-' + CAST(@i as nvarchar(3)), @i=@i+1
END
SET @FileName = @FileNameCheck
Есть ли способ сжать это на меньшее количество строк?