<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          如何執(zhí)行超過100M的SQL腳本?

          共 1493字,需瀏覽 3分鐘

           ·

          2021-11-27 08:33

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


          解決辦法有各種各樣:
          • 用記事本打開腳本文件,把文件依次剪切成10-15M左右的文本文件,然后再一個(gè)個(gè)執(zhí)行;
          • 或者在腳本導(dǎo)出時(shí),分表導(dǎo)出,這樣導(dǎo)出的文本size也不會很大;

          以上問題雖然簡便,但是步驟繁多,要是表和數(shù)據(jù)太多,著實(shí)是一種勞力折磨!另外如果表之間是有主外鍵關(guān)系的,分?jǐn)?shù)據(jù)得小心謹(jǐn)慎,否則報(bào)錯(cuò)讓你抓狂!獲取更多視頻教程,微信搜索【碼農(nóng)編程進(jìn)階筆記
          好!說了這么多,到底有什么解決方案了呢!

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

          什么是 Osql?

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

          如何使用 Osql?

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

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


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

          在鍵入cmd與下面這一個(gè)類似的命令:

          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é)束時(shí)不退出 osql。

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

          獲取更多視頻教程,微信搜索【碼農(nóng)編程進(jìn)階筆記】

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

          將該工具指向一個(gè)腳本文件,步驟:

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

          • 打開命令提示符,鍵入與下面類似的一個(gè)命令,然后按 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é)果定向到一個(gè)文件,請向上述命令中添加 -o output_file 參數(shù)。

          例如:

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

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


          總結(jié)

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

          瀏覽 61
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日日日av | 水蜜桃视频在线观看免费 | 婷婷激情双飞 | 欧美一级的视频勉费看 | 国产一区二区三区四 |