0

txtファイルから行を読み取り、TESTSPプロシージャで処理を行いたいと思います。しかし、私にはいくつかのエラーがあります。クエリをどのように書き直す必要がありますか?よろしくお願いします。

コード:


DECLARE @i int
set @i =0
WHILE(@i<85)
begin
@i=@i+1;
if(@i<10)
begin
    exec TESTSP'C:\dosya\X_20130208_0'+@i+'.txt'
end
else
begin
    exec TESTSP 'C:\dosya\X_20130208_'+convert(@i as varchar(2))+'.txt'
end
end

エラー:

Msg 102, Level 15, State 1, Line 5
Incorrect syntax near '@i'.

Msg 102, Level 15, State 1, Line 8
Incorrect syntax near '+'.

Msg 102, Level 15, State 1, Line 12
Incorrect syntax near '+'.
4

1 に答える 1

3

あなたはのためにする必要がありconvert or cast @i (int) to varchar ます string concatenationsyntax of Convertまた、キャスト構文を使用して変換したので注意してください。

declare @i int = 0, @path varchar(500)

while(@i<85)
begin

    --You can simplify (or remove if condition) using right() function as below

    --Assign @path here before calling stored procedure
    select @i = @i + 1, 
           @path = 'C:\dosya\X_20130208_' + right(100 + @i, 2) + '.txt'

    --Execute stored procedure here
    exec TESTSP @path

end
于 2013-02-26T10:50:48.477 に答える