タイトルはすべてです。ランダムな長さを持ち、私の 'アルファベット'から作成された無作為に生成された '単語'が入力されるテーブル(ID、FirstName、LastName)を作成する必要があります。各単語は、DBによってランダムに生成される必要があります。テーブル全体には1,000,000行が必要です。INSERT INTOステートメントでの関数の使用方法[SQL SERVR 2016]
私がこれまで行ってきたことを記入してください。決定した '手紙' のセットからランダムlenghという言葉 'を生成スカラー関数を作成し
CREATE VIEW [dbo].[RANDOM] AS SELECT RAND() RandomResult
:乱数を生成VIEWを作成し
:
CREATE FUNCTION [dbo].[WordGenerator] (@RandomWord VARCHAR(MAX)) RETURNS VARCHAR(MAX) AS BEGIN DECLARE @Alphabet VARCHAR(33) = 'abcdefghijklmnoprstuówxyzęąśłżźćń', @StrLength INT, @LoopCount INT, @RandomString VARCHAR(MAX), @AlphabetLength INT; SELECT @StrLength = (SELECT RandomResult FROM dbo.Random) * 4 + 7, @LoopCount = 0, @RandomString = '', @AlphabetLength = LEN(@Alphabet); WHILE (@LoopCount < @StrLength) BEGIN SELECT @RandomString = @RandomString + SUBSTRING(@Alphabet, CONVERT(INT, (SELECT RandomResult FROM dbo.Random) * @AlphabetLength), 1) SET @LoopCount = @LoopCount + 1; END RETURN @RandomString; END
今は、この関数を 'WordGenerator'というINSERT INTO句で使用したいと思いますが、呼び出すことができないため機能しません。
どのように私は毎回は、新しい、ランダムな単語を生成することになっている私の機能呼び出すことができますか?
SELECT TOP 1 RandomWord FROM dbo.WordGenerator()
を使用すると機能しません。
SELECT dbo.WordGenerator()
を使用すると機能しません。
SELECT * FROM dbo.WordGenerator()
を使用すると機能しません。
アイデア?
これはテーブル値関数ではありません。 SELECT dbo.WordGenerator()を呼び出すだけで、そこにパラメータがある理由がわかりません。 – pmbAustin