4

特定のテーブルに新しい列を作成するために使用したい、その中にalter tableコマンドを含むカーソルがあります。列名には、別のテーブルの 1 つの列の値が含まれるため、カーソルを使用してこれを行いました。とにかく、次のエラー メッセージが表示され続けます: Msg 173, Level 15, State 1, Line 1 列 'nvarchar' の定義には、データ型を含める必要があります。. 今、私はすべてのデータ型を宣言しました(まあ、私はやったと思います、チェックしました)、なぜこのメッセージが表示され続けるのかわかりません。Google で同様の問題が見つからなかったので、このサイトで初めて質問することにしました。迅速な回答を期待しています。コードは次のとおりです。

DECLARE @rbr_param  nvarchar(255)
DECLARE @cName nvarchar(255)
SET @cName = 'P_'+@rbr_param+'_P'

DECLARE curs CURSOR FOR SELECT DISTINCT rbr_param FROM dbo.parametri_pomocna ORDER BY     rbr_param
OPEN curs
FETCH NEXT FROM curs
INTO @rbr_param
WHILE @@FETCH_STATUS = 0
BEGIN

EXEC('ALTER TABLE dbo.Parametri ADD ' + @cName + ' nvarchar(255)')

FETCH NEXT FROM curs
INTO @rbr_param

END
CLOSE curs
DEALLOCATE curs
4

2 に答える 2

3

@rbr_param の値が更新されても、@cName は自動的に更新されません。この行を移動する必要があります

SET @cName = 'P_'+@rbr_param+'_P'

ループの内側。

于 2013-04-03T18:16:20.863 に答える