使用BAT批處理執(zhí)行sql語(yǔ)句的代碼
1、把待執(zhí)行Sql保存在一個(gè)文件,這里為20110224.sql。
2、新建一個(gè)擴(kuò)展名.bat的批處理文件,輸入下面命令并保存后,雙擊.bat文件,系統(tǒng)會(huì)自動(dòng)執(zhí)行20110224.sql的語(yǔ)句:
osql -S gdjlc -d TestDB -U sa -P 1 -i 20110224.sql
osql參數(shù)見(jiàn)下面
=======================================================================
:
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ī)叢書(shū)。
用法: 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
[-? 顯示語(yǔ)法摘要]
通過(guò)批處理執(zhí)行sql命令實(shí)例:
通過(guò)批處理執(zhí)行sql命令:
1. Restore.bat文件內(nèi)容:
osql -E -S -i C:\TempDB\Restore.txt
2. Restore.txt文件內(nèi)容:
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:
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語(yǔ)句保存成文件,寫(xiě)一個(gè)批處理在命令行狀
態(tài)下調(diào)用查詢分析器來(lái)執(zhí)行這個(gè)sql文件里的語(yǔ)句。
下面就是sqlserver幫助里對(duì)于查詢分析器(isqlw)命令行參數(shù)的解釋:
isqlw 實(shí)用工具(SQL 查詢分析器)使您得以輸入 Transact-SQL 語(yǔ)句、系統(tǒng)存儲(chǔ)過(guò)程和腳本文件。通過(guò)設(shè)置快捷方式或創(chuàng)建批處理
文件,可以啟動(dòng)預(yù)配置的 SQL 查詢分析器。
語(yǔ)法
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 語(yǔ)句。默認(rèn)值為用戶的默認(rèn)數(shù)據(jù)庫(kù)。
-E
使用信任連接而不請(qǐng)求密碼。
-U user
用戶登錄 ID。登錄 ID 區(qū)分大小寫(xiě)。
-P password
是登錄密碼。默認(rèn)設(shè)置為 NULL。
-i input_file
標(biāo)識(shí)包含一批 SQL 語(yǔ)句或存儲(chǔ)過(guò)程的文件。必須同時(shí)指定 -i 和 -o 選項(xiàng)。如果指定 -i 和 -o 選項(xiàng),將執(zhí)行輸入文件中的查詢,并
將結(jié)果保存到輸出文件中。在查詢執(zhí)行過(guò)程中不顯示用戶接口。當(dāng)執(zhí)行完成后,進(jìn)程退出。
-o output_file
標(biāo)識(shí)接收來(lái)自 isqlw 的輸出的文件。必須同時(shí)指定 –i 和 –o 選項(xiàng)。如果指定 -i 和 -o 選項(xiàng),將執(zhí)行輸入文件中的查詢,并將結(jié)
果保存到輸出文件中。在查詢執(zhí)行過(guò)程中不顯示用戶接口。當(dāng)執(zhí)行完成后,進(jìn)程退出。如果未使用 -F 指定文件格式,則輸出文件使用
與輸入文件相同的類型。
-F {U|A|O}
是輸入文件和輸出文件的格式。值包括 Unicode、ANSI 和 OEM。如果未指定 -F,則使用自動(dòng)模式(如果文件標(biāo)為 Unicode 格式,則
以 Unicode 格式打開(kāi);否則,以 ANSI 格式打開(kāi)文件)。
-f file_list
將列出的文件裝載到 SQL 查詢分析器中。使用 -f 選項(xiàng),可以裝載一個(gè)或多個(gè)文件(文件名以單個(gè)空格分開(kāi))。如果指定了多個(gè)文件
,則以相同的連接上下文將這些文件打開(kāi)。文件名可以包含該文件所駐留的目錄路徑??梢允褂猛ㄅ浞?,如 C:Test*.sql 中的星號(hào)
(*)。
-C configuration_file
使用配置文件中指定的設(shè)置。其它在命令提示下顯式指定的參數(shù)將重寫(xiě)相應(yīng)配置文件中的設(shè)置。
-D scripts_directory
重寫(xiě)在注冊(cè)表中或在用 –C 指定的配置文件中指定的默認(rèn)存儲(chǔ)腳本目錄。該值不保留在注冊(cè)表或配置文件中。若要在 SQL 查詢分析
器中查看該選項(xiàng)的當(dāng)前值,請(qǐng)單擊"工具"菜單,然后單擊"選項(xiàng)"命令。
-T template_directory
重寫(xiě)在注冊(cè)表中或在用 –C 指定的配置文件中指定的默認(rèn)模板目錄。該值不保留在注冊(cè)表或配置文件中。若要在 SQL 查詢分析器中
查看該選項(xiàng)的當(dāng)前值,請(qǐng)單擊"工具"菜單,然后單擊"選項(xiàng)"命令。
注釋
有用戶界面或沒(méi)有用戶界面時(shí)都可使用 isqlw 實(shí)用工具。若要在沒(méi)有用戶界面的情況下運(yùn)行 isqlw,請(qǐng)指定有效登錄信息(具有信任
連接或有效登錄 ID 及密碼的 SQL Server 2000 實(shí)例)和輸入及輸出文件。isqlw 將執(zhí)行輸入文件的內(nèi)容,并將結(jié)果保存到輸出文件
中。
如果沒(méi)有指定輸入和輸出文件,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 語(yǔ)句
本例使用 Windows 身份驗(yàn)證連接到 MyServer 上的 pubs 數(shù)據(jù)庫(kù),并執(zhí)行 Input.sql 文件。結(jié)果保存在 Output.txt 文件中。這些
文件以 Unicode 文件方式打開(kāi)。
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 語(yǔ)句,執(zhí)行結(jié)果存儲(chǔ)在 output_file 中。
isqlw -S MyServer -d pubs -U sa -P -i input_file -o output_file
相關(guān)文章
批處理代碼搞定Windows下Nginx+PHP(FastCGI)管理
今天在家沒(méi)事,自己用批處理寫(xiě)了個(gè)Windows下的Nginx+PHP管理程序。2010-03-03在遠(yuǎn)程計(jì)算機(jī)的CMD內(nèi)下載FTP文件的方法
在遠(yuǎn)程計(jì)算機(jī)的CMD內(nèi)下載FTP文件的方法...2007-11-11Dos批處理編寫(xiě)一鍵清理系統(tǒng)垃圾的bat代碼
一鍵清理系統(tǒng)垃圾是靠dos也就是批處理實(shí)現(xiàn)的。主要的命令是del和rd 一個(gè)是刪除文件(del) 一個(gè)刪除目錄(rd),這里為大家介紹一下2016-11-11統(tǒng)計(jì)重復(fù)次數(shù)并排序的批處理
SearchNet.TXT中每行只有一個(gè)數(shù),統(tǒng)計(jì)每個(gè)數(shù)的重復(fù)次數(shù),并按照重復(fù)次數(shù)由高到低排序2009-05-05certutil - decode/encode BASE64/HEX strings.Print symbols by
Certutil is available on my WIN 7 and Vista machines by default.I think it should be also available for XP but I'm not 100% sure.2016-10-10