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