解決在SQL腳本中的注釋引起的奇怪問題
更新時間:2013年11月01日 18:00:32 作者:
通過osql.exe這個工具來對相關(guān)的數(shù)據(jù)庫腳本進行更新,昨天突然發(fā)現(xiàn)安裝包報錯了,說腳本錯誤,研究發(fā)現(xiàn)有個不錯的解決方法,需要的朋友不要錯過
在數(shù)據(jù)庫安裝包中,我們通過osql.exe這個工具來對相關(guān)的數(shù)據(jù)庫腳本進行更新,昨天突然發(fā)現(xiàn)安裝包報錯了,說腳本錯誤,但我們將腳本拿到數(shù)據(jù)庫查詢分析器中執(zhí)行,一切OK。
問題出在哪里呢?
通過使用osql單獨來執(zhí)行報錯的腳本,打印相關(guān)信息:
osql.exe -S .\SQLDEV -U sa -P MyRoot -b -n -r 1 -i ".\UpdateTable.sql" -o "c:\hahah.txt"
@echo %errorlevel%
@pause
得到如下錯誤信息:
osql Missing end comment mark "*/"
暈倒,說我的注釋符缺少了,可根本沒有少啊。
最后發(fā)現(xiàn),原來是在注釋語句中存在 GO 語句的問題,如下:
/* ........... GO */
拿掉后,一切正常了,看來這也算是osql工具的一個小BUG吧。
問題出在哪里呢?
通過使用osql單獨來執(zhí)行報錯的腳本,打印相關(guān)信息:
復(fù)制代碼 代碼如下:
osql.exe -S .\SQLDEV -U sa -P MyRoot -b -n -r 1 -i ".\UpdateTable.sql" -o "c:\hahah.txt"
@echo %errorlevel%
@pause
得到如下錯誤信息:
osql Missing end comment mark "*/"
暈倒,說我的注釋符缺少了,可根本沒有少啊。
最后發(fā)現(xiàn),原來是在注釋語句中存在 GO 語句的問題,如下:
/* ........... GO */
拿掉后,一切正常了,看來這也算是osql工具的一個小BUG吧。
相關(guān)文章
sqlserver 數(shù)據(jù)庫日志備份和恢復(fù)步驟
sqlserver 數(shù)據(jù)庫日志備份和恢復(fù)實現(xiàn)步驟2009-05-05新手SqlServer數(shù)據(jù)庫dba需要注意的一些小細(xì)節(jié)
這篇文章主要介紹了新手SqlServer數(shù)據(jù)庫dba需要注意的一些小細(xì)節(jié),本文講解了15個小細(xì)節(jié)、小技巧及需要注意的地方,需要的朋友可以參考下2015-02-02