0

最近、SQL Serverデータベースを使用していて、SQuirreL SQLクライアントを使用していくつかのテーブルのトリガーを作成しようとしましたが、何らかの理由で次の厄介なエラーメッセージを取り除くことができませんでした。

"エラー:'CREATE TRIGGER'はクエリバッチの最初のステートメントである必要があります。SQLState:S0001 ErrorCode:111"

私が実行しようとしたクエリは次のとおりです(構文が正しいことを確認するために、非常に単純なトリガーから始めました)。

CREATE TRIGGER meeting_overlap on adhoc_meeting
FOR INSERT
AS
DECLARE
    @myvar INT

Microsoft SQL Server Management Studio Expressでまったく同じクエリを実行しようとすると、正常に実行されました。私の質問は、SQuirreL SQLクライアントを使用して他の誰かが同様の問題に遭遇したことがありますか?もしそうなら、このエラーを取り除くために何をしましたか?

編集:

SQuirrelSQLv2.6.8をMicrosoftSQLServer JDBC Driver 2.0で使用しており、SQLServer2005に接続しています。

4

3 に答える 3

2

私も同じ問題を抱えていました。いくつかのグーグルの後、私はこの記事を見つけました:

http://vsingleton.blogspot.com/2009/04/error-create-view-must-be-first.html

つまり、create triggerステートメントの周りにexec('')をラップします。さらに、トリガーステートメントにある一重引用符(')は、二重一重引用符('')に変更する必要があります。

于 2009-06-04T17:26:14.493 に答える
0

SQL 2005 SP3 (開発者版) に対してjTDS jbdc ドライバーの v1.2.2 を使用して、SQuirrel SQL v2.6.8 でこれを複製できませんでした。

于 2009-05-28T11:29:13.907 に答える
0

通常、バッチ内の最初のステートメント以外は許可されていない複数のステートメントを同じバッチ内で実行しようとすると、このエラーが発生します。それらの間にが必要な場合がありGOます。 GOSQL コマンドではなく、コマンドのバッチを分離するためのクライアント ツールへの指示です

于 2009-05-28T03:59:35.577 に答える