2009-05-28 64 views
0

最近我一直在使用SQL Server數據庫,並試圖爲使用SQuirreL SQL Client的某些表創建一些觸發器,出於某種原因,我無法擺脫以下討厭的錯誤消息:使用SQuirreL SQL客戶端創建SQL Server觸發器

「錯誤:‘CREATE TRIGGER’必須是查詢批次中的第一條語句 的SQLState:S0001 錯誤碼:111」

我試圖執行的查詢是下面(我從一個非常簡單的觸發器開始,以確保語法正確):

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

當我試圖在Microsoft SQL Server Management Studio Express中執行完全相同的查詢時,它執行得很好。我的問題是:是否有其他人使用SQuirreL SQL Client遇到類似的問題,如果是的話,你做了什麼來擺脫這個錯誤?

編輯:

我使用松鼠SQL v2.6.8與Microsoft SQL Server JDBC驅動程序2.0和我連接到SQL Server 2005

+0

這不是說這回答你的問題,但SQuirrel SQL不如Quest Toad(也有一個免費版本)的IMO好。你可能想要給它一個裂縫來挽救頭痛! http://www.toadsoft.com/toadsqlserver/toad_sqlserver.htm – 2009-05-28 04:43:06

+0

SQuirreL的哪個版本?哪個jdbc驅動程序? – 2009-05-28 11:29:49

回答

0

通常你嘗試運行多個語句時,你得到的是錯誤在同一個批次中,除了批次中的第一個語句外,不允許其他任何內容。他們之間可能需要GOGO不是SQL命令,而是really a directive來分隔批處理命令的客戶端工具。

+0

當我第一次收到描述的錯誤消息時,我讀到了這個消息,但是由於我試圖執行的查詢實際上只是我上面發佈的那個查詢,所以不應該執行得很好,因爲CREATE TRIGGER語句是第一個(也是唯一的)批次中的聲明? – BordrGuy108 2009-05-28 04:04:03

+0

我認爲SQuirrelSQL首先在批處理中添加其他內容。使用SQL Profiler查看實際發送的內容。然後查看您是否可以在SQuirrel SQL中禁用該功能或​​提交錯誤報告。 – 2009-05-28 04:08:21

0

我無法在SQuirrel SQL v2.6.8上使用jTDS jbdc driver的v1.2.2對SQL 2005 SP3(developer edition)進行復制。