亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > BAT > 正文

通過批處理調用SQL的方法(osql)

2020-03-29 20:02:27
字體:
來源:轉載
供稿:網友
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
指定列分隔符字符,其默認為空格。若要使用對操作系統有特殊含義的字符(例如 ¦ ; & < >),請將該字符用雙引號 (") 引起來。
-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 ¦ 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® 批處理文件可以測試 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® 用戶帳戶。
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)中進行讀?。?br />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文件]
把中括號去掉
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品人成电影在线观看| 国产91色在线| 欧美午夜视频一区二区| 日韩精品视频免费在线观看| 亚洲高清av在线| 欧美国产视频一区二区| 亚洲一区二区国产| 欧美亚洲成人精品| 91久久嫩草影院一区二区| 久久久亚洲福利精品午夜| 欧美一级大片在线免费观看| 欧美日韩ab片| 亚洲天堂成人在线| 福利微拍一区二区| 欧美在线视频网| 中文字幕九色91在线| 国内免费久久久久久久久久久| 久久久噜噜噜久久中文字免| 777国产偷窥盗摄精品视频| 国产成人亚洲综合青青| 这里只有精品在线观看| 性色av一区二区咪爱| 91久久在线视频| 国产成人精品日本亚洲专区61| 欧美成人免费全部观看天天性色| 久久影视三级福利片| 91禁外国网站| 国产性色av一区二区| 欧美专区日韩视频| 91日本在线观看| 亚洲人成啪啪网站| 91久久久久久久久| 精品国产一区二区三区久久狼黑人| 欧美激情成人在线视频| 精品国模在线视频| 国产欧美精品xxxx另类| 成人欧美一区二区三区在线湿哒哒| 日本午夜在线亚洲.国产| 国产精品久久久久久亚洲调教| 91美女高潮出水| 亚洲女人天堂色在线7777| 精品视频在线导航| 国产视频精品在线| 美日韩精品免费观看视频| 欧美—级a级欧美特级ar全黄| 成人免费直播live| 日韩电影免费在线观看中文字幕| 久久综合色影院| 中文字幕久久久| 国产欧美日韩精品丝袜高跟鞋| 欧美日韩国产中文精品字幕自在自线| 色综合久久天天综线观看| 91久久久在线| 亚洲精品乱码久久久久久按摩观| 亚洲免费av片| 久久中文字幕国产| 欧美日韩免费观看中文| 人人澡人人澡人人看欧美| 亚洲精品97久久| 欧美大片大片在线播放| 国产精品视频区| www日韩中文字幕在线看| 久久久91精品国产一区不卡| 日韩精品亚洲元码| 国产裸体写真av一区二区| 国产精品丝袜高跟| 国产福利视频一区| 亚洲国产精品va在看黑人| 综合久久五月天| 欧美精品亚州精品| 5566日本婷婷色中文字幕97| 欧美电影免费观看高清完整| 91久久在线视频| 高清欧美电影在线| 日韩成人激情影院| 久久久久久有精品国产| 国产精品电影在线观看| 人人做人人澡人人爽欧美| 成人有码视频在线播放| 在线视频欧美性高潮| 亚洲v日韩v综合v精品v| 国产精品国产自产拍高清av水多| 国产精品国产三级国产aⅴ浪潮| 久久成人国产精品| 亚洲丁香婷深爱综合| 亚洲字幕一区二区| 在线看欧美日韩| 国产精品自拍网| 蜜臀久久99精品久久久无需会员| 麻豆一区二区在线观看| 日韩美女激情视频| 亚洲女人天堂成人av在线| 欧美亚洲一级片| 久久青草精品视频免费观看| 91日本在线观看| 精品中文字幕乱| 日韩欧美国产激情| 91中文字幕在线观看| 日韩av影视综合网| 亚洲欧美制服丝袜| 日韩精品免费在线观看| 亚洲欧美制服第一页| 欧日韩不卡在线视频| 国产精品高潮视频| 中文一区二区视频| 久久久噜噜噜久久久| 欧美成人中文字幕| 国模视频一区二区三区| 亚洲视屏在线播放| 日韩欧美在线观看视频| 九九视频直播综合网| 在线播放精品一区二区三区| 97视频在线免费观看| 欧美电影免费观看| 中文字幕在线看视频国产欧美| 亚洲伊人久久大香线蕉av| 欧美影院成年免费版| 欧美黑人xxxⅹ高潮交| 搡老女人一区二区三区视频tv| 精品中文字幕久久久久久| 久久久免费观看| 国外色69视频在线观看| 日韩欧美中文第一页| 日韩中文字幕在线观看| 久久亚洲精品一区二区| 国产91在线播放精品91| 精品国产乱码久久久久久虫虫漫画| 欧美在线观看一区二区三区| 在线观看国产精品91| 成人av番号网| 亚洲欧美日韩精品| 亚洲xxxx视频| 欧美另类在线播放| 久久综合久中文字幕青草| 久久视频在线免费观看| 亚洲综合最新在线| 欧美—级高清免费播放| 色爱av美腿丝袜综合粉嫩av| 清纯唯美亚洲综合| 国产热re99久久6国产精品| 欧美视频中文在线看| 日日骚久久av| 欧美影院久久久| 97精品一区二区三区| 91视频九色网站| 久久久久久久久久久网站| 91精品视频在线播放| 亚洲精品久久久久久久久| 国产精品丝袜一区二区三区| 国产精品久久久久久av| 国产视频自拍一区| 欧美激情在线观看| 久久综合免费视频影院| 亚洲美女激情视频| 亚洲欧美国内爽妇网| 91成人天堂久久成人| 国产成人精品视| 国产精品久久久久福利| 国产精品88a∨| 色综合久久中文字幕综合网小说| 国产精品福利在线观看网址| 成人激情视频在线| 久久久国产精彩视频美女艺术照福利| 97在线观看视频国产|