-1

私はTSQLのプロではありません。私はこの機能を持っています:

for (i=1;i<=30;i++) {
    for (j=1;j<=10;j++){
        insert into NAMES values ("","","Name"+i+" - fn"+j", "Name"+i+" - fn"+j", "Numeric", "R",0,"N",0,"00");
     }
}

一度に 300 個のレコード (30x10) をすべて挿入するように SQL 関数に変換したいと考えています。

4

2 に答える 2

5

関数に対して実行することはできませんINSERT。私があなたを正しく理解していれば、これはあなたが望むものです:

DECLARE @I INT, @J INT
SET @I = 1
SET @J = 1

WHILE @I <= 30
BEGIN
    WHILE @J <= 10
    BEGIN
        INSERT INTO NAMES
        SELECT  '',
                '',
                'Name'+CAST(@I AS VARCHAR(2))+' - fn'+CAST(@J AS VARCHAR(2)),
                'Name'+CAST(@I AS VARCHAR(2))+' - fn'+CAST(@J AS VARCHAR(2)),
                'Numeric',
                'R',
                0,
                'N',
                0,
                '00'

        SET @J = @J + 1
    END
    SET @J = 1
    SET @I = @I + 1
END
于 2013-05-13T21:53:47.483 に答える