2

私は次の声明を持っています:

DECLARE @Nr_Karton int;

SELECT @Nr_Karton = ISNULL(MAX(Nr), 1000)  FROM W_Karton;

SET @Nr_Karton = @Nr_Karton + 1;

INSERT INTO W_Karton (Container_ID, Nr, Beschrieb, CreationDate, Location) 
  VALUES ('1', @Nr_Karton, '', getDate(), 'Bösingen');

しかし、私はエラーが発生します:

[SQL] SELECT @Nr_Karton = ISNULL(MAX(Nr), 1000) FROM W_Karton

[Err] 42000 - [SQL Server] スカラー変数 "@Nr_Karton" を宣言する必要があります。

エラーを取り除く方法は?

4

2 に答える 2

6

私はこれでいくつかの遊びをしました。私が作成した架空のスキーマは次のとおりです。

CREATE TABLE W_Karton (Container_ID int, Nr int, Beschrieb varchar(1), CreationDate datetime, Location varchar(10))

ローカルの 2008R2 ボックスで解析して正常に実行されましたが、同じコードをSQL Fiddleに貼り付けると機能しませんでした。

ただし、このSQL Fiddleに従って、最後のセミコロン以外のすべてのセミコロンを削除すると、正常に動作しているように見えます!

違いはないと思いますが、うまくいき、理由を気にしない場合は、試してみてください...

于 2012-12-14T15:53:01.260 に答える
5

同じ問題が発生しました。「;」が原因であることがわかりました 「クエリターミネータ」として選択されています。SQL Fiddle では、これは実際には「バッチ ターミネータ」を意味します。右下に「[;]」というテキストを持つドロップダウン ボタンがあるはずです。それをクリックして「キーワード [GO]」を選択します。

于 2014-02-12T03:28:45.407 に答える