日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

如何执行超过一百兆(100MB)的sql脚本?

發(fā)布時間:2025/3/15 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何执行超过一百兆(100MB)的sql脚本? 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

最近遇到一個問題,在sqlserver的查詢分析器里面執(zhí)行一個超過100MB的數(shù)據(jù)庫腳本,發(fā)現(xiàn)老是報(bào)“引發(fā)類型為“System.OutOfMemoryException”的異常”,上網(wǎng)查了一下,主要是因?yàn)?sql的腳本文件過大(一般都超過100M)造成內(nèi)存無法處理這么多的數(shù)據(jù)。

????解決辦法有各種各樣,例如:

? ? 1、用記事本打開腳本文件,把文件依次剪切成10-15M左右的文本文件,然后再一個個執(zhí)行;

? ? 2、或者在腳本導(dǎo)出時,分表導(dǎo)出,這樣導(dǎo)出的文本size也不會很大;

? ? 以上問題雖然簡便,但是步驟繁多,要是表和數(shù)據(jù)太多,著實(shí)是一種勞力折磨!另外如果表之間是有主外鍵關(guān)系的,分?jǐn)?shù)據(jù)得小心謹(jǐn)慎,否則報(bào)錯讓你抓狂!

? ? 好!說了這么多,到底有什么解決方案了呢!

? ? 解決方案就是使用cmd下的osql命令,腳本大不是問題,關(guān)鍵是你得有耐心,執(zhí)行大腳本,是需要一定的時間的!實(shí)際上也是!

什么是 Osql?

osql 是一個 Microsoft Windows 32 命令提示符工具,您可以使用它運(yùn)行 Transact-SQL 語句和腳本文件!

如何使用 Osql?

在開始->運(yùn)行 中鍵入cmd,使用 "OSQL -?"命令,就可以顯示osql命令行的幫助。?
注意:osql 工具的選項(xiàng)列表是區(qū)分大小的,在使用時注意。

?注意:在上圖中我們可以看到osql 并不支持 SQL Server 2012的所有功能,如果需要使用SQL Server 2012的所有功能可以使用ocmd命令。

?1、使用osql執(zhí)行單個 Transact-SQL 語句

? ? ??在鍵入cmd與下面這一個類似的命令:

? ? osql -E -q "Transact-SQL statement" ?

? ? 例如:sql -E -q "use myDB select * from myTable"

? ? 其中 -E 表示使用 Microsoft Windows NT 身份驗(yàn)證。

? ? 也可以使用sa賬戶,具體可以看看上面的命令!

? ? 而-q 表示運(yùn)行 Transact-SQL 語句,但是在查詢結(jié)束時不退出 osql。

? ? 如要運(yùn)行 Transact-SQL 語句并退出 osql,請使用 -Q 參數(shù)來代替 -q。

2、使用osql執(zhí)行一個大腳本文件

? ?? 將該工具指向一個腳本文件,步驟:

? ??a.創(chuàng)建一個包含一批 Transact-SQL 語句的腳本文件(如 myfile.sql)。

? ??b.打開命令提示符,鍵入與下面類似的一個命令,然后按 ENTER 鍵:

? ??osql -E -i input_file

? ??其中input_file 是腳本文件及其完整路徑。例如,如果腳本文件 myfile.sql 在 C:\users文件夾中,

? ??請將參數(shù) myfile?替換為 C:\users\myfile.sql。

? ??該腳本文件的運(yùn)行結(jié)果將出現(xiàn)在控制臺窗口中。

? ??如果您想將運(yùn)行結(jié)果定向到一個文件,請向上述命令中添加 -o output_file 參數(shù)。例如:

? ??osql -E -i input_file -o output_file

? ??其中output_file 是輸出文件及其完整路徑。

總結(jié)

? ? 如果你覺得太麻煩了,可以使用批處理,將常用的一些命令寫在bat文件中,需要的時候替換一些參數(shù),點(diǎn)擊文件執(zhí)行即可!是不是比自己去寫一個程序方便多呢???

?

原文出處:https://www.cnblogs.com/hai-ping/p/3939150.html

轉(zhuǎn)載于:https://www.cnblogs.com/sucretan2010/p/10835211.html

總結(jié)

以上是生活随笔為你收集整理的如何执行超过一百兆(100MB)的sql脚本?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。