技術_新秀https://www.cnblogs.com/hai-ping/p/3939150.html最近遇到了一個問題。他在sql Server的查詢分析器中執行了一個大小超過100MB的數據庫腳本,發現他總是報告“使用類型引發異?!毕到y。out of memory異?!啊?。他在網上查了一下,主要是因為。SQL太大(一般超過100M)內存處理不了這么多數據。
有多種解決方案:
用記事本打開腳本文件,依次剪切成10-15M左右的文本文件,然后逐個執行;
或者腳本導出的時候是按表格導出的,這樣導出的文本大小不會很大;
以上問題雖然簡單,但是步驟很多。如果表格和數據太多,那真的是一種勞動折磨!另外,如果表與表之間有主外鍵關系,要小心劃分數據,不然報錯就瘋了!
好吧!說了這么多,有什么解決辦法?
解決方案是使用cmd下的osql命令。大劇本不是問題。關鍵是你要有耐心,執行好大劇本。這需要一定的時間!其實是!
00-1010OSQL是一個Microsoft Windows 32命令提示工具,可用于運行Transact-SQL語句和腳本文件!
00-1010
什么是 Osql?
在開始運行時鍵入cmd,并使用“OSQL-?”命令,可以顯示osql命令行的幫助。注意:osql工具的選項列表是區分大小的,所以使用時要小心。
注意:在上圖中,我們可以看到osql并不支持SQL Server 2012的所有功能。如果需要使用SQL Server 2012的所有功能,可以使用ocmd命令。
1、使用osql執行單個 Transact-SQL 語句
在類似于以下命令的命令中鍵入cmd:
osql-E-q'Transact-SQLstatement '
例如:
Sql -E-q '使用mydb select * from my table '其中-E表示使用Microsoft Windows NT身份驗證。
您也可以使用sa帳戶。詳情請看上面的命令!
而-q表示運行Transact-SQL語句,但不在查詢結束時退出osql。
若要運行Transact-SQL語句并退出osql,請使用-q參數而不是-Q。
2、使用osql執行一個大腳本文件
將工具指向腳本文件。步驟:
創建包含一批Transact-SQL語句的腳本文件(如myfile.sql)。
打開命令提示符,鍵入類似下面的命令,然后按ENTER鍵。
Osql -E -i input_file其中input_file是腳本文件及其完整路徑。例如,如果腳本文件myfile.sql位于C:\users文件夾中,請將參數myfile替換為C: \ users \ myfile.sql。
腳本文件的運行結果將出現在控制臺窗口中。
如果您想將運行結果定向到一個文件,請在上面的命令中添加-o output_file參數。
例如:
osql-e-I input _ file-o output_file其中output _ file是輸出文件及其完整路徑。
總結
如果覺得太麻煩,可以使用批處理,在bat文件中寫一些常用命令,必要時替換一些參數,點擊文件執行!是不是比自己寫程序方便很多?——End——