1、把待執(zhí)行Sql保存在一個(gè)文件,這里為20110224.sql。
2、新建一個(gè)擴(kuò)展名.bat的批處理文件,輸入下面命令并保存后,雙擊.bat文件,系統(tǒng)會(huì)自動(dòng)執(zhí)行20110224.sql的語句:
復(fù)制代碼 代碼如下:
osql -S gdjlc -d TestDB -U sa -P 1 -i 20110224.sql
osql參數(shù)見下面
=======================================================================
:
E:\&;osql /?
icrosoft (R) SQL Server 命令行工具
版本 10.0.1600.22 NT INTEL X86
版權(quán)所有 (c) Microsoft Corporation。保留所有權(quán)利。
注意: osql 并不支持 SQL Server 2008的所有功能。
請(qǐng)使用 sqlcmd。有關(guān)詳細(xì)信息,請(qǐng)參閱 SQL Server 聯(lián)機(jī)叢書。
用法: osql [-U 登錄 ID] [-P 密碼]
[-S 服務(wù)器] [-H 主機(jī)名] [-E 可信連接]
[-d 使用數(shù)據(jù)庫(kù)名稱] [-l 登錄超時(shí)值] [-t 查詢超時(shí)值]
[-h 標(biāo)題] [-s 列分隔符] [-w 列寬]
[-a 數(shù)據(jù)包大小] [-e 回顯輸入] [-I 允許帶引號(hào)的標(biāo)識(shí)符]
[-L 列出服務(wù)器] [-c 命令結(jié)束] [-D ODBC DSN 名稱]
[-q "命令行查詢"] [-Q "命令行查詢" 并退出]
[-n 刪除編號(hào)方式] [-m 錯(cuò)誤級(jí)別]
[-r 發(fā)送到 stderr 的消息] [-V 嚴(yán)重級(jí)別]
[-i 輸入文件] [-o 輸出文件]
[-p 打印統(tǒng)計(jì)信息] [-b 出錯(cuò)時(shí)中止批處理]
[-X[1] 禁用命令,[退出的同時(shí)顯示警告]]
[-O 使用舊 ISQL 行為禁用下列項(xiàng)]
EOF> 批處理
自動(dòng)調(diào)整控制臺(tái)寬度
寬消息
默認(rèn)錯(cuò)誤級(jí)別為 -1 和 1
[-? 顯示語法摘要]
通過批處理執(zhí)行sql命令實(shí)例:
通過批處理執(zhí)行sql命令:
1. Restore.bat文件內(nèi)容:
osql -E -S -i C:\TempDB\Restore.txt
2. Restore.txt文件內(nèi)容:
復(fù)制代碼 代碼如下:
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
導(dǎo)出數(shù)據(jù)到txt:
復(fù)制代碼 代碼如下:
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'
很多情況下,需要給客戶更新數(shù)據(jù)庫(kù),不值得
跑一趟,客戶自己也不懂得如何操作,遠(yuǎn)程操作網(wǎng)速還跟不上...這時(shí)可以把要更新的sql語句保存成文件,寫一個(gè)批處理在命令行狀
態(tài)下調(diào)用查詢分析器來執(zhí)行這個(gè)sql文件里的語句。
下面就是sqlserver幫助里對(duì)于查詢分析器(isqlw)命令行參數(shù)的解釋:
isqlw 實(shí)用工具(SQL 查詢分析器)使您得以輸入 Transact-SQL 語句、系統(tǒng)存儲(chǔ)過程和腳本文件。通過設(shè)置快捷方式或創(chuàng)建批處理
文件,可以啟動(dòng)預(yù)配置的 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]
]
參數(shù)
-?
顯示用法信息。
-S server_name[instance_name]:
指定要連接到的 Microsoft® SQL Server™ 2000 實(shí)例。指定用于連接到該服務(wù)器上的 SQL Server 2000 默認(rèn)實(shí)例的 server_name。
指定用于連接到該服務(wù)器上的 SQL Server 2000 命名實(shí)例的 server_nameinstance_name。如果未指定服務(wù)器,isqlw 將連接到本地
計(jì)算機(jī)上的 SQL Server 默認(rèn)實(shí)例。從網(wǎng)絡(luò)上的遠(yuǎn)程計(jì)算機(jī)執(zhí)行 isqlw 時(shí),此選項(xiàng)是必需的。
-d database
當(dāng)啟動(dòng) isqlw 時(shí),發(fā)出一個(gè) USE database 語句。默認(rèn)值為用戶的默認(rèn)數(shù)據(jù)庫(kù)。
-E
使用信任連接而不請(qǐng)求密碼。
-U user
用戶登錄 ID。登錄 ID 區(qū)分大小寫。
-P password
是登錄密碼。默認(rèn)設(shè)置為 NULL。
-i input_file
標(biāo)識(shí)包含一批 SQL 語句或存儲(chǔ)過程的文件。必須同時(shí)指定 -i 和 -o 選項(xiàng)。如果指定 -i 和 -o 選項(xiàng),將執(zhí)行輸入文件中的查詢,并
將結(jié)果保存到輸出文件中。在查詢執(zhí)行過程中不顯示用戶接口。當(dāng)執(zhí)行完成后,進(jìn)程退出。
-o output_file
標(biāo)識(shí)接收來自 isqlw 的輸出的文件。必須同時(shí)指定 –i 和 –o 選項(xiàng)。如果指定 -i 和 -o 選項(xiàng),將執(zhí)行輸入文件中的查詢,并將結(jié)
果保存到輸出文件中。在查詢執(zhí)行過程中不顯示用戶接口。當(dāng)執(zhí)行完成后,進(jìn)程退出。如果未使用 -F 指定文件格式,則輸出文件使用
與輸入文件相同的類型。
-F {U|A|O}
是輸入文件和輸出文件的格式。值包括 Unicode、ANSI 和 OEM。如果未指定 -F,則使用自動(dòng)模式(如果文件標(biāo)為 Unicode 格式,則
以 Unicode 格式打開;否則,以 ANSI 格式打開文件)。
-f file_list
將列出的文件裝載到 SQL 查詢分析器中。使用 -f 選項(xiàng),可以裝載一個(gè)或多個(gè)文件(文件名以單個(gè)空格分開)。如果指定了多個(gè)文件
,則以相同的連接上下文將這些文件打開。文件名可以包含該文件所駐留的目錄路徑。可以使用通配符,如 C:Test*.sql 中的星號(hào)
(*)。
-C configuration_file
使用配置文件中指定的設(shè)置。其它在命令提示下顯式指定的參數(shù)將重寫相應(yīng)配置文件中的設(shè)置。
-D scripts_directory
重寫在注冊(cè)表中或在用 –C 指定的配置文件中指定的默認(rèn)存儲(chǔ)腳本目錄。該值不保留在注冊(cè)表或配置文件中。若要在 SQL 查詢分析
器中查看該選項(xiàng)的當(dāng)前值,請(qǐng)單擊"工具"菜單,然后單擊"選項(xiàng)"命令。
-T template_directory
重寫在注冊(cè)表中或在用 –C 指定的配置文件中指定的默認(rèn)模板目錄。該值不保留在注冊(cè)表或配置文件中。若要在 SQL 查詢分析器中
查看該選項(xiàng)的當(dāng)前值,請(qǐng)單擊"工具"菜單,然后單擊"選項(xiàng)"命令。
注釋
有用戶界面或沒有用戶界面時(shí)都可使用 isqlw 實(shí)用工具。若要在沒有用戶界面的情況下運(yùn)行 isqlw,請(qǐng)指定有效登錄信息(具有信任
連接或有效登錄 ID 及密碼的 SQL Server 2000 實(shí)例)和輸入及輸出文件。isqlw 將執(zhí)行輸入文件的內(nèi)容,并將結(jié)果保存到輸出文件
中。
如果沒有指定輸入和輸出文件,isqlw 將交互運(yùn)行并啟動(dòng) SQL 查詢分析器。如果指定了有效登錄信息,isqlw 將直接連接 SQL
Server 2000 實(shí)例。如果指定的連接信息不充足,將出現(xiàn)"連接到 SQL Server"對(duì)話框。
isqlw 和 SQL 查詢分析器使用 ODBC API。該實(shí)用工具使用 SQL-92 的 Microsoft® SQL Server ODBC 驅(qū)動(dòng)程序默認(rèn)設(shè)置。
示例
A. 執(zhí)行 SQL 語句
本例使用 Windows 身份驗(yàn)證連接到 MyServer 上的 pubs 數(shù)據(jù)庫(kù),并執(zhí)行 Input.sql 文件。結(jié)果保存在 Output.txt 文件中。這些
文件以 Unicode 文件方式打開。
isqlw -S MyServer -d pubs -E -i input.sql -o output.txt -FU
B. 使用通配符
本例將兩個(gè)文件裝載到 SQL 查詢分析器中。將使用 Windows 身份驗(yàn)證連接到本地服務(wù)器。
isqlw -d pubs -E -f "c:Program FilesMicrosoft SQL ServerMSSQLInstallinstpubs.sql" "c:Program FilesMicrosoft
SQL ServerMSSQLInstallinstcat.sql"
C. 裝載多個(gè)文件
本例將所有 .sql 文件裝載到 SQL 查詢分析器中。所有連接均使用 Windows 身份驗(yàn)證并指向本地服務(wù)器上的 pubs 數(shù)據(jù)庫(kù)。
isqlw -d pubs -E -f "c:Program FilesMicrosoft SQL ServerMSSQLInstall*.sql"
D. 使用 Unicode 文件
本例連接到 MyServer(pubs 數(shù)據(jù)庫(kù)),并執(zhí)行 input_file 中的 SQL 語句,執(zhí)行結(jié)果存儲(chǔ)在 output_file 中。
isqlw -S MyServer -d pubs -U sa -P -i input_file -o output_file
您可能感興趣的文章:- windows下bat批處理執(zhí)行Mysql的sql語句