1

重複の可能性:
RAND() を使用して SQL Server で非決定論的関数を作成する

関数でランダムな nvarchar を生成する必要があります。だから私はこの関数を作成します:

CREATE FUNCTION [dbo].[sfp_GenerateRandomString]    
    (@length int) -- Length of string   
RETURNS NVARCHAR
AS
BEGIN
DECLARE @random NVARCHAR(25) = ''

while @length > 0   
begin
    set @random = @random + nchar((cast(rand()*1000 as int)%26)+97)
    set @length = @length-1
end
return @random      
END

しかし、RAND() 関数は DETERMINISTIC でなければならない SQL 関数では禁止されているため、機能しません。RAND() は NONDETERMINISTIC です。

だから私の質問は、この場合乱数を生成する方法ですか? ありがとう。

4

1 に答える 1

0

関数で本当に必要な場合は、SQL CLR 関数を使用できます。または、1 か所でのみ必要な場合は、ストアド プロシージャに配置します。

個人的には、SQL Server 内でこの種の作業をまったく行わないことを選択します。これはアプリケーション ロジックであり、データベース ロジックではありません。バックストーリーを知らなくても、他にどんな制約があるのか​​ わかりません.

于 2011-11-28T10:53:42.857 に答える