SQLServerが出力するメモリ不足の謎

SQLServer2008R2のsqlcmdで以下のようなコマンドを実行する。
sqlcmd -c ; -S localhost -U user -P pass -i hoge.sql
この時、hoge.sqlの中に「;」で区切られて、かつ「GO」が含まれていない
INSERT分やUPDATE分が大量にある場合、以下のようなメッセージが出力されます。
メッセージ 701、レベル 17、状態 139、サーバー localhost、行 15843
このクエリを実行するには、リソース プール 'internal' のシステム メモリが不足しています。
-cオプションはバッチターミネーターを指定しているので、「GO」が含まれるかどうかは
別問題のはずですが、ダメみたいです。
-c cmd_end
バッチ ターミネータを指定します。既定では、"GO" だけが入力されている行があると、コマンドが終了したと見なされ、SQL Server に送られます。バッチ ターミネータをリセットする場合、Transact-SQL の予約キーワードやオペレーティング システムで特別な意味を持つ文字は、先頭に円記号が付いているかどうかに関係なく、使用しないでください。
※参考
http://technet.microsoft.com/ja-jp/library/ms162773.aspx
■追記:2010/09/29
-cで指定したバッチターミネーターを単独行にしたところ、期待通りの動作をしました。
×ダメな例(-c ;)
UPDATE EMPLOYEE SET NAME='太郎' WHERE CODE=1;
UPDATE EMPLOYEE SET NAME='太郎' WHERE CODE=2;
○良い例(-c ;)
UPDATE EMPLOYEE SET NAME='太郎' WHERE CODE=1
;
UPDATE EMPLOYEE SET NAME='太郎' WHERE CODE=2
;