Domanda

Di recente ho lavorato con un database SQL Server e stavo cercando di creare alcuni trigger per alcune tabelle che utilizzano client SQuirreL SQL e per qualche motivo non sono riuscito a sbarazzarsi del seguente messaggio di errore fastidioso:

"Errore: 'CREATE TRIGGER' deve essere la prima istruzione in un batch di query. SQLState: S0001 ErrorCode: 111"

La query stavo tentando di esecuzione è stato il seguente (ho iniziato con un molto semplice innesco per assicurarsi che la sintassi era corretta):

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

Quando ho tentato di eseguire il mio esatto stessa query in Microsoft SQL Server Management Studio Express è eseguita bene. La mia domanda è:? Ha chiunque altro incorrere in problemi simili utilizzando SQuirreL SQL client e, se sì, che cosa hai fatto per sbarazzarsi di questo errore

EDIT:

Sto usando SQL SQuirrel v2.6.8 con il Microsoft SQL Server driver JDBC 2.0 e Sto collegando a SQL Server 2005.

È stato utile?

Soluzione

ho avuto lo stesso problema. Dopo un po 'Googling, ho trovato questo articolo:

http: //vsingleton.blogspot .com / 2009/04 / error-creare-view-deve-essere-first.html

In breve, avvolgere exec ( '') attorno al comando create trigger. Inoltre, tutte le singole virgolette ( ') che avete nel comunicato grilletto devono essere cambiati doppi apici singoli (' ').

Altri suggerimenti

Di solito si ottiene che l'errore quando si tenta di eseguire più istruzioni nello stesso batch che non sono autorizzati a essere altro che la prima istruzione in un batch. Potrebbe essere necessario un GO tra di loro. GO non è un comando SQL, ma davvero una direttiva per lo strumento client per separare batch di comandi.

non ho potuto replicare questo su SQuirrel SQL v2.6.8 utilizzando v1.2.2 del jTDS JBDC conducente contro SQL 2005 SP3 (developer edition).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top