中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何通過批處理調用SQL

發布時間:2021-09-30 13:54:05 來源:億速云 閱讀:145 作者:小新 欄目:開發技術

這篇文章將為大家詳細講解有關如何通過批處理調用SQL,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

osql /U alma /P /i stores.bat
(stores.bat中包含update ,delete語句,不過,不需要使用GO)
----------------------------------------------------
osql 實用工具
osql 實用工具使您得以輸入 Transact-SQL 語句、系統過程和腳本文件。該實用工具通過 ODBC 與服務器通訊。
語法
osql
[-?] ¦
[-L] ¦
[
{
{-U login_id [-P password]}
¦ -E
}
[-S server_name[instance_name]] [-H wksta_name] [-d db_name]
[-l time_out] [-t time_out] [-h headers]
[-s col_separator] [-w column_width] [-a packet_size]
[-e] [-I] [-D data_source_name]
[-c cmd_end] [-q "query"] [-Q "query"]
[-n] [-m error_level] [-r {0 ¦ 1}]
[-i input_file] [-o output_file] [-p]
[-b] [-u] [-R] [-O]
]
參數-?
顯示 osql 開關的語法摘要。
-L
列出在本地配置的服務器和在網絡上廣播的服務器的名稱。
-U login_id
用戶登錄 ID。登錄 ID 區分大小寫。
-P password
是用戶指定的密碼。如果未使用 -P 選項,osql 將提示輸入密碼。如果在命令提示符的末尾使用 -P 選項而不帶密碼,osql 使用默認密碼 (NULL)。密碼區分大小寫。
OSQLPASSWORD 環境變量使您得以為當前會話設置默認密碼。因此,不需要通過硬編碼來在批處理文件中設置密碼。
如果沒有為 -P 選項指定密碼,osql 首先檢查 OSQLPASSWORD 變量。如果未設置值,osql 使用默認密碼 (NULL)。以下示例在命令提示符處設置 OSQLPASSWORD 變量,然后訪問 osql 實用工具:
C:>SET OSQLPASSWORD=abracadabra
C:>osql
-E
使用信任連接而不請求密碼。
-S server_name[instance_name]
指定要連接的 Microsoft® SQL Server? 2000 實例。在該服務器上指定 server_name 以連接到 SQL Server 的默認實例。在該服務器上指定 server_nameinstance_name 以連接到一個已命名的 SQL Server 2000 的實例。如果未指定服務器,osql 將連接到本地計算機上的 SQL Server 默認實例。從網絡上的遠程計算機執行 osql 時,此選項是必需的。
-H wksta_name
是工作站名稱。工作站名稱存儲在 sysprocesses.hostname 中并由 sp_who 顯示。如果未指定此選項,則采用當前計算機名稱。
-d db_name
啟動 osql 時發出一個 USE db_name 語句。
-l time_out
指定 osql 登錄超時之前的秒數。登錄到 osql 的默認超時為 8 秒。
-t time_out
指定命令超時之前的秒數。如果未指定 time_out 值,則命令不會超時。
-h headers
指定要在列標題之間打印的行數。默認為每一查詢結果集打印一次標題。用 –1 指定不打印標題。如果使用 -1,則在參數和設置之間一定不能有空格(可以是 -h-1,不能是 -h –1)。
-s col_separator
指定列分隔符字符,其默認為空格。若要使用對操作系統有特殊含義的字符(例如 &brvbar; ; & < >),請將該字符用雙引號 (") 引起來。
-w column_width
允許用戶設置屏幕輸出的寬度。默認為 80 個字符。當輸出行達到其最大屏幕寬度時,會拆分為多個行。
-a packet_size
使您得以請求不同大小的數據包。packet_size 的有效值在 512 到 65535 之間。osql 的默認值為服務器的默認值。數據包大小的增加可以提高較大腳本執行的性能,在這種執行中 GO 命令之間 SQL 語句的數量很重要。Microsoft 的測試表明 8192 是大容量復制操作典型的最快設置。可以請求更大的數據包大小,但如果請求不能得到批準,則 osql 默認為服務器的默認值。
-e
回顯輸入。
-I
設置 QUOTED_IDENTIFIER 連接選項為開啟。
-D data_source_name
連接到用 Microsoft SQL Server 的 ODBC 驅動程序定義的 ODBC 數據源。osql 連接使用該數據源中指定的選項。

說明 該選項不適用于其它驅動程序定義的數據源。

-c cmd_end
指定命令終止符。默認情況下,通過單獨在一行中輸入 GO 來終止命令并將其發送到 SQL Server 2000。在重置命令終止符時,不要使用對操作系統有特殊含義的 Transact-SQL 保留字或字符,無論其前面是否有反斜杠。
-q "query"
啟動 osql 時執行查詢,但是在查詢完成時不退出 osql。(注意查詢語句不應包含 GO)。如果從批處理文件中發出查詢,請使用 %variables 或環境 %variables%。例如:
SET table = sysobjects
osql /q "Select * from %table%"
將查詢用雙引號引起來,將查詢中嵌入的任何內容用單引號引起來。
-Q "query"
執行查詢并立即退出 osql。將查詢用雙引號引起來,將查詢中嵌入的任何內容用單引號引起來。
-n
從輸入行中刪除編號和提示符號 (>)。
-m error_level
自定義錯誤信息的顯示。顯示指定的或更高嚴重級別錯誤的消息數、狀態和錯誤級別。不顯示嚴重級別低于指定級別的錯誤的任何信息。用 -1 指定與消息一起返回所有標題,即使是信息類的消息。如果用 –1,則在參數和設置之間不能有空格(可以是 -m-1,不能是 -m -1)。
-r {0 &brvbar; 1}
將消息輸出重定向到屏幕 (stderr)。如果未指定參數,或指定參數為 0,則僅重定向嚴重級別為 17 或更高的錯誤信息。如果指定參數為 1,則將重定向所有消息輸出(包括 "print")。
-i input_file
標識包含一批 SQL 語句或存儲過程的文件。小于 ( <) 比較運算符可以用來代替 –i。
-o output_file
標識從 osql 接收輸出的文件。大于 (>) 比較運算符可以用來代替 –o。
如果 input_file 不是 Unicode 并且沒有指定 -u,則 output_file 將存儲為 OEM 格式。如果 input_file 是 Unicode 或者指定了 -u,則 output_file 將存儲為 Unicode 格式。
-p
打印性能統計。
-b
指定發生錯誤時 osql 退出并返回一個 DOS ERRORLEVEL 值。當 SQL Server 錯誤信息的嚴重級別為 10 或更高時,返回給 DOS ERRORLEVEL 變量的值為 1;否則返回 0。Microsoft MS-DOS&reg; 批處理文件可以測試 DOS ERRORLEVEL 的值并適當處理錯誤。
-u
指定 output_file 存儲為 Unicode 格式,而不管 input_file 為何種格式。
-R
指定在將貨幣、日期和時間數據轉換為字符數據時 SQL Server ODBC 驅動程序使用客戶端設置。
-O
為與 isql 的早期版本行為匹配,指定停用某些 osql 功能。下列功能停用:
EOF 批處理

控制臺寬度自動調整

寬信息
同時還將 DOS ERRORLEVEL 的默認值設置為 –1。
注釋
osql 實用工具從操作系統直接啟動,并且使用本文中列出的區分大小寫的選項。啟動后,osql 接受 SQL 語句并將它們交互地發送到 SQL Server。結果被格式化并顯示在屏幕上 (stdout)。可使用 QUIT 或 EXIT 退出 osql。
如果啟動 osql 時未指定用戶名,SQL Server 2000 將檢查環境變量并使用它們,例如 osqluser=(user) 或 osqlserver=(server)。如果未設置環境變量,則使用工作站用戶名。如果未指定服務器,則使用工作站名稱。
如果 -U 或 -P 選項都沒有使用,則 SQL Server 2000 將嘗試使用 Windows 身份驗證模式進行連接。身份驗證基于運行 osql 的 Microsoft Windows NT&reg; 用戶帳戶。
osql 實用工具使用 ODBC API。該實用工具使用 SQL Server 2000 SQL-92 連接選項的 SQL Server ODBC 驅動程序默認設置。有關更多信息,請參見 SQL-92 選項的效果。
有關此實用工具位置和運行方式的信息,請參見命令提示實用工具入門。
OSQL 命令
除了 osql 中使用的 Transact-SQL 語句外,下表中的命令也可用。
命令 描述
GO 執行最后一個 GO 命令之后輸入的所有語句。
RESET 清除已輸入的所有語句。
ED 調用編輯器。
!! command 執行操作系統命令。
QUIT 或 EXIT( ) 退出 osql。
CTRL+C 鍵 不退出 osql 而結束查詢。

僅當命令終止符 GO(默認)、RESET、ED、!!、EXIT、QUIT 和 CTRL+C 出現在一行的開始(緊跟 osql 提示符)時才可以識別。osql 忽視同一行中這些關鍵字后輸入的任何內容。
GO 表明一批的結束和任何已被高速緩存的 Transact-SQL 語句的執行。在每個輸入行的結尾按 ENTER 鍵時,osql 將高速緩存此行的語句。鍵入 GO 后按 ENTER 鍵時,所有當前已緩存的語句都將作為批處理發送到 SQL Server。
當前的 osql 實用工具工作起來就好像在任何被執行的腳本結尾處都帶有隱含的 GO,因而腳本中的所有語句都將執行。最后一個 GO 后的任何語句都不執行。
通過鍵入以命令終止符作為開始的行來結束命令。可以在命令終止符后輸入一個整數來指定命令運行的次數。例如,若要執行此命令 100次,請鍵入:
SELECT x = 1
GO 100
執行結束時打印一次結果。osql 不接受每行字符數超過 1,000 的結果。長語句應當跨多個行書寫。
通過在行首鍵入 ED,用戶可以在當前查詢緩沖區上調用編輯器。編輯器在 EDITOR 環境變量中定義。默認編輯器為"edit"。可以通過設置 EDITOR 環境變量來指定其它編輯器。例如,若要將默認編輯器指定為 Notepad,請在操作系統提示符處輸入:
SET EDITOR=notepad
操作系統命令
通過用兩個驚嘆號 (!!) 開始一行,然后輸入命令的方式,也可以執行操作系統命令。Windows NT 的命令撤回功能可用來撤回和修改 osql 語句。鍵入 RESET 可以清除現有的查詢緩沖區。
在運行存儲過程時,osql 在批處理中的每個結果集之間打印一個空行。此外,如果沒有應用于已執行的語句,則"0 行受到影響"消息不會出現。
交互性使用 osql
若要交互性使用 osql,請在命令提示符處鍵入 osql 命令(以及任何選項)。
可以通過鍵入類似下行的命令,在包含由 osql 執行的查詢的文件(例如 Stores.qry)中進行讀取:
osql /U alma /P /i stores.qry
該文件必須包含命令終止符。
可以通過鍵入類似下行的命令,在包含查詢的文件(例如 Titles.qry)中進行讀取并將結果導向另一文件:
osql /U alma /P /i titles.qry /o titles.res
交互性使用 osql 時,為把操作系統文件讀入到命令緩沖區,可使用:r file_name。不要在文件中包含命令終止符;在完成編輯后交互輸入終止符。
插入注釋
在 osql 提交給 SQL Server 的 Transact-SQL 語句中可以包含注釋。允許使用兩種注釋風格類型:-- 和 /*...*/。
有關更多信息,請參見使用注釋。
使用 EXIT 返回 osql 結果
可以使用 SELECT 語句的結果作為 osql 的返回值。第一個結果行的第一列轉換為 4 字節的整數(長整型)。MS-DOS 將低字節傳遞給父進程或操作系統錯誤級別。Windows NT 則傳遞整個 4 字節整數。語法為:
EXIT(query)
例如:
EXIT(SELECT @@ROWCOUNT)
EXIT(SELECT 5)
也可以包含 EXIT 參數,使其作為批處理文件的一部分。例如:
osql /Q "EXIT(SELECT COUNT(*) FROM '%1')"
osql 實用工具將圓括號 ( ) 中輸入的所有內容原樣傳遞給服務器。如果存儲系統過程選擇了一個集合并返回一個值,則僅返回選擇的內容。在圓括號之間無參數的 EXIT( ) 語句執行批處理中此語句前的所有內容,然后退出,而不返回值。
EXIT 格式有四種:
EXIT
不執行批處理就立即退出,無返回值。
EXIT( )
執行批處理后退出,無返回值。
EXIT(query)
執行包括查詢的批處理,返回查詢的結果后退出。
狀態為 127 的 RAISERROR。
如果在 osql 腳本中使用 RAISERROR,并且出現狀態 127,則 osql 會退出并將消息 ID 返回給客戶程序。例如:
RAISERROR(50001, 10, 127)
該錯誤會導致 osql 腳本終止并將消息 ID 50001 返回給客戶程序。
SQL Server 保留介于 -1 到 -99 之間的返回值;osql 定義下列值:
-100
選擇返回值前遇到的錯誤。
-101
選擇返回值時找不到行。
-102
選擇返回值時發生轉換錯誤。
顯示 money 和 smallmoney 數據類型
osql 只用兩位小數位數顯示 money 和 smallmoney 數據類型,但 SQL Server 用四位小數位數在內部存儲這兩類數據的值。請看下例:
SELECT CAST(CAST(10.3496 AS money) AS decimal(6, 4))
此語句的結果為 10.3496,說明該值是原樣按完整的小數位存儲的。
'----------------------------------------------------------------------------------------------------------
先把你這條語句保存在一個.sql的文件里。
然后.bat文件里這樣寫

osql -s [服務器] -U [用戶名] -P [密碼] -d [數據庫] -n -i [.sql文件]
把中括號去掉

關于“如何通過批處理調用SQL”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

墨竹工卡县| 西青区| 霍林郭勒市| 马山县| 金沙县| 工布江达县| 唐山市| 石嘴山市| 中卫市| 清原| 瑞昌市| 和林格尔县| 商南县| 佛山市| 多伦县| 泰宁县| 陇南市| 华安县| 六盘水市| 柳河县| 陆川县| 资讯| 长葛市| 健康| 东阿县| 克东县| 无极县| 时尚| 凉城县| 金湖县| 慈溪市| 龙江县| 肃北| 都昌县| 崇明县| 福贡县| 凤庆县| 安福县| 江城| 监利县| 嫩江县|