web-dev-qa-db-ja.com

CREATE TRIGGERはバッチの最初のステートメントでなければなりません

以下のトリガーがあります:

 CREATE Trigger enroll_limit on Enrollments
 Instead of Insert
 As
 Declare @Count int
 Declare @Capacity int
 Select @Count = COUNT(*) From Enrollments
 Select @Capacity = Capacity From CourseSections
 If @Count < @Capacity
 Begin 
      Insert Into Enrollments Select * From Inserted
 End
 GO

私は言っているエラーメッセージを得ています:

「CREATE TRIGGER」はクエリバッチの最初のステートメントである必要があります。

22
zoe

エラーメッセージ「 'CREATE TRIGGER'はクエリバッチの最初のステートメントでなければなりません。」通常、先行するステートメントのグループ(バッチ)に終了GOがない場合に発生します

したがって、前のバッチのステートメントの最後にGOを追加することをお勧めします。

40
Mitch Wheat

あなたがSQL Server Management Studioからこれを試しているなら、私のために働いた別のオプションがあります:

左側のペインで、データベースを右クリックし、[新しいクエリ]を選択します。

これにより、特定のデータベースに接続されます。これで、開いたクエリウィンドウの最初のステートメントとして、作成トリガーステートメントを入力できます。 「use」コマンドは必要ありません。

enter image description here

0
jdhildeb