使用BAT批處理執行sql語句的代碼_DOS/BAT

來源:互聯網
上載者:User

1、把待執行Sql儲存在一個檔案,這裡為20110224.sql。
2、建立一個副檔名.bat的批次檔,輸入下面命令並儲存後,雙擊.bat檔案,系統會自動執行20110224.sql的語句:

複製代碼 代碼如下:

osql -S gdjlc -d TestDB -U sa -P 1 -i 20110224.sql

osql參數見下面
=======================================================================

E:\>osql /?
icrosoft (R) SQL Server 命令列工具
版本 10.0.1600.22 NT INTEL X86
著作權 (c) Microsoft Corporation。著作權所有,並保留一切權利。

注意: osql 並不支援 SQL Server 2008的所有功能。
請使用 sqlcmd。有關詳細資料,請參閱 SQL Server 聯機叢書。

用法: osql                   [-U 登入 ID]          [-P 密碼]
 [-S 伺服器]                [-H 主機名稱]           [-E 可信串連]
 [-d 使用資料庫名稱]        [-l 登入逾時值]       [-t 查詢逾時值]
 [-h 標題]                  [-s 資料行分隔符號]         [-w 列寬]
 [-a 資料包大小]            [-e 回顯輸入]         [-I 允許引號識別項]
 [-L 列出伺服器]            [-c 命令結束]         [-D ODBC DSN 名稱]
 [-q "命令列查詢"]          [-Q "命令列查詢" 並退出]
 [-n 刪除編號方式]          [-m 錯誤層級]
 [-r 發送到 stderr 的訊息]  [-V 嚴重層級]
 [-i 輸入檔案]              [-o 輸出檔案]
 [-p 列印統計資訊]          [-b 出錯時中止批處理]
 [-X[1] 禁用命令,[退出的同時顯示警告]]
 [-O 使用舊 ISQL 行為禁用下列項]
     <EOF> 批處理
     自動調整控制台寬度
     寬訊息
     預設錯誤層級為 -1 和 1
 [-? 顯示文法摘要]

 通過批處理執行sql命令執行個體:

 通過批處理執行sql命令:

1. Restore.bat檔案內容:

      osql -E -S -i C:\TempDB\Restore.txt

 

2. Restore.txt檔案內容:

複製代碼 代碼如下:

use master
if exists (select * from sysdevices where name='TruckDB')
       EXEC sp_dropdevice 'TruckDB'
Else
       EXEC sp_addumpdevice 'disk','TruckDB', 'C:\Program Files\Microsoft SQL Server\MSSQL\Data\TruckDB.mdf'
restore database TruckDB
from disk='c:\TempDB\TruckDB'
with replace
 

匯出資料到txt:

複製代碼 代碼如下:

EXEC master..xp_cmdshell 'bcp "test..mintest" in d:\mintest2.txt -c -Sd02 -Usa -P'
EXEC master..xp_cmdshell 'bcp "test..min" out d:\mintest2.txt -c -Sd02 -Usa -P'

很多情況下,需要給客戶更新資料庫,不值得

跑一趟,客戶自己也不懂得如何操作,遠程操作網速還跟不上...這時可以把要更新的sql語句儲存成檔案,寫一個批處理在命令列狀

態下調用查詢分析器來執行這個sql檔案裡的語句。

下面就是sqlserver協助裡對於查詢分析器(isqlw)命令列參數的解釋:

isqlw 工具 + 生產力(SQL 查詢分析器)使您得以輸入 Transact-SQL 陳述式、系統預存程序和指令檔。通過設定捷徑或建立批處理

檔案,可以啟動預配置的 SQL 查詢分析器。

文法
isqlw
    [-?] |
     [
         [-S server_name[instance_name]]
         [-d database]
         [-E] [-U user] [-P password]
         [{-i input_file} {-o output_file} [-F {U|A|O}]]
         [-f file_list]
         [-C configuration_file]
         [-D scripts_directory]
         [-T template_directory]
     ]

參數
-?

顯示用法資訊。

-S server_name[instance_name]:

指定要串連到的 Microsoft® SQL Server™ 2000 執行個體。指定用於串連到該伺服器上的 SQL Server 2000 預設執行個體的 server_name。

指定用於串連到該伺服器上的 SQL Server 2000 具名執行個體的 server_nameinstance_name。如果未指定伺服器,isqlw 將串連到本地

電腦上的 SQL Server 預設執行個體。從網路上的遠端電腦執行 isqlw 時,此選項是必需的。

-d database

當啟動 isqlw 時,發出一個 USE database 語句。預設值為使用者的預設資料庫。

-E

使用信任連接而不請求密碼。

-U user

使用者登入 ID。登入 ID 區分大小寫。

-P password

是登入密碼。預設設定為 NULL。

-i input_file

標識包含一批 SQL 陳述式或預存程序的檔案。必須同時指定 -i 和 -o 選項。如果指定 -i 和 -o 選項,將執行輸入檔案中的查詢,並

將結果儲存到輸出檔案中。在查詢執行過程中不顯示使用者介面。當執行完成後,進程退出。

-o output_file

標識接收來自 isqlw 的輸出的檔案。必須同時指定 –i 和 –o 選項。如果指定 -i 和 -o 選項,將執行輸入檔案中的查詢,並將結

果儲存到輸出檔案中。在查詢執行過程中不顯示使用者介面。當執行完成後,進程退出。如果未使用 -F 指定檔案格式,則輸出檔案使用

與輸入檔案相同的類型。

-F {U|A|O}

是輸入檔案和輸出檔案的格式。值包括 Unicode、ANSI 和 OEM。如果未指定 -F,則使用自動模式(如果檔案標為 Unicode 格式,則

以 Unicode 格式開啟;否則,以 ANSI 格式開啟檔案)。

-f file_list

將列出的檔案裝載到 SQL 查詢分析器中。使用 -f 選項,可以裝載一個或多個檔案(檔案名稱以單個空格分開)。如果指定了多個檔案

,則以相同的串連上下文將這些檔案開啟。檔案名稱可以包含該檔案所駐留的目錄路徑。可以使用萬用字元,如 C:Test*.sql 中的星號

(*)。

-C configuration_file

使用設定檔中指定的設定。其它在命令提示下顯式指定的參數將重寫相應設定檔中的設定。

-D scripts_directory

重寫在註冊表中或在用 –C 指定的設定檔中指定的預設儲存指令碼目錄。該值不保留在註冊表或設定檔中。若要在 SQL 查詢分析

器中查看該選項的當前值,請單擊"工具"菜單,然後單擊"選項"命令。

-T template_directory

重寫在註冊表中或在用 –C 指定的設定檔中指定的預設範本目錄。該值不保留在註冊表或設定檔中。若要在 SQL 查詢分析器中

查看該選項的當前值,請單擊"工具"菜單,然後單擊"選項"命令。


注釋

有使用者介面或沒有使用者介面時都可使用 isqlw 工具 + 生產力。若要在沒有使用者介面的情況下運行 isqlw,請指定有效登入資訊(具有信任
串連或有效登入 ID 及密碼的 SQL Server 2000 執行個體)和輸入及輸出檔案。isqlw 將執行輸入檔案的內容,並將結果儲存到輸出檔案
中。
如果沒有指定輸入和輸出檔案,isqlw 將互動運行並啟動 SQL 查詢分析器。如果指定了有效登入資訊,isqlw 將直接連接 SQL
Server 2000 執行個體。如果指定的串連資訊不充足,將出現"串連到 SQL Server"對話方塊。
isqlw 和 SQL 查詢分析器使用 ODBC API。該工具 + 生產力使用 SQL-92 的 Microsoft® SQL Server ODBC 驅動程式預設設定。
樣本

A. 執行 SQL 陳述式
本例使用 Windows 身分識別驗證串連到 MyServer 上的 pubs 資料庫,並執行 Input.sql 檔案。結果儲存在 Output.txt 檔案中。這些
檔案以 Unicode 檔案方式開啟。
isqlw -S MyServer -d pubs -E -i input.sql -o output.txt -FU
 

B. 使用萬用字元
本例將兩個檔案裝載到 SQL 查詢分析器中。將使用 Windows 身分識別驗證串連到本機伺服器。
isqlw -d pubs -E -f "c:Program FilesMicrosoft SQL ServerMSSQLInstallinstpubs.sql" "c:Program FilesMicrosoft
SQL ServerMSSQLInstallinstcat.sql"
 

C. 裝載多個檔案
本例將所有 .sql 檔案裝載到 SQL 查詢分析器中。所有串連均使用 Windows 身分識別驗證並指向本機伺服器上的 pubs 資料庫。
isqlw -d pubs -E -f "c:Program FilesMicrosoft SQL ServerMSSQLInstall*.sql"
 

D. 使用 Unicode 檔案
本例串連到 MyServer(pubs 資料庫),並執行 input_file 中的 SQL 陳述式,執行結果儲存在 output_file 中。
isqlw -S MyServer -d pubs -U sa -P -i input_file -o output_file

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.