sql備忘-osql 實(shí)用工具
osql 實(shí)用工具 來自msdn
語法

參數(shù)
-U?login_id?
用戶登錄?ID。登錄?ID?區(qū)分大小寫。


如果?-U?選項(xiàng)和?-P?選項(xiàng)均未指定,sqlcmd?將嘗試使用?Microsoft?Windows?身份驗(yàn)證模式進(jìn)行連接。身份驗(yàn)證基于運(yùn)行?sqlcmd?的用戶的?Windows?帳戶。

如果?-U?選項(xiàng)與?-E?選項(xiàng)(在本主題的后面詳細(xì)說明)一起使用,將生成錯(cuò)誤消息。如果?–U?選項(xiàng)后有多個(gè)參數(shù),將生成錯(cuò)誤消息并退出程序。?

-P?password?
用戶指定的密碼。密碼是區(qū)分大小寫的。如果未使用?-P?選項(xiàng),并且未設(shè)置?SQLCMDPASSWORD?環(huán)境變量,則?sqlcmd?會(huì)提示用戶輸入密碼。如果在命令提示符的末尾使用?-P?選項(xiàng)而不帶密碼,sqlcmd?將使用默認(rèn)密碼?(NULL)。?



-E?
使用可信連接而不是用戶名和密碼登錄?SQL?Server。默認(rèn)情況下,sqlcmd?將使用可信連接選項(xiàng)。

-E?選項(xiàng)會(huì)忽略可能的用戶名和密碼環(huán)境變量設(shè)置,例如?SQLCMDPASSWORD。如果將?-E?選項(xiàng)與?-U?選項(xiàng)或?-P?選項(xiàng)一起使用,將生成錯(cuò)誤消息。?

-S?server_name?[?\instance_name?]?
指定要連接的?SQL?Server?的實(shí)例。它設(shè)置?sqlcmd?腳本變量?SQLCMDSERVER?

指定?server_name?將連接到該服務(wù)器中?SQL?Server?的默認(rèn)實(shí)例。指定?server_name\instance_name?將連接到該服務(wù)器中?SQL?Server?的命名實(shí)例。如果未指定服務(wù)器,sqlcmd?將連接到本地計(jì)算機(jī)上的?SQL?Server?的默認(rèn)實(shí)例。從網(wǎng)絡(luò)上的遠(yuǎn)程計(jì)算機(jī)執(zhí)行?sqlcmd?時(shí),此選項(xiàng)是必需的。

如果在啟動(dòng)?sqlcmd?時(shí)未指定用戶名,SQL?Server?將檢查并使用?SQLCMDSERVER?環(huán)境變量。如果未指定服務(wù)器,則使用工作站名稱。



-H?wksta_name?
工作站的名稱。此選項(xiàng)設(shè)置?sqlcmd?腳本變量?SQLCMDWORKSTATION。該工作站名稱在?sys.processes?目錄視圖的?hostname?列中列出,并可使用存儲(chǔ)過程?sp_who?返回。如果未指定此選項(xiàng),則使用當(dāng)前計(jì)算機(jī)名稱。此名稱可用來標(biāo)識(shí)不同的?sqlcmd?會(huì)話。

-d?db_name?
啟動(dòng)?sqlcmd?時(shí)發(fā)出一個(gè)?USE?db_name?語句。此選項(xiàng)設(shè)置?sqlcmd?腳本變量?SQLCMDDBNAME。它指定初始數(shù)據(jù)庫。如果數(shù)據(jù)庫不存在,則生成錯(cuò)誤消息且?sqlcmd?退出。

-l?time_out?
指定?sqlcmd?到?OLE?DB?訪問接口的登錄超時(shí)時(shí)間。此選項(xiàng)設(shè)置?sqlcmd?腳本變量?SQLCMDLOGINTIMEOUT。登錄?sqlcmd?的默認(rèn)超時(shí)時(shí)間為?8?秒。登錄超時(shí)設(shè)定必須是介于?0?和?65534?之間的數(shù)字。如果提供的值不是數(shù)值或不在此范圍內(nèi),sqlcmd?將生成錯(cuò)誤消息。該值為?0?時(shí),則允許無限制等待。

-t?time_out?
指定命令(或?SQL?語句)超時(shí)的時(shí)間。此選項(xiàng)設(shè)置?sqlcmd?腳本變量?SQLCMDSTATTIMEOUT。如果未指定?time_out?值,則命令將不會(huì)超時(shí)。登錄?time_out?必須是介于?1?和?65535?之間的數(shù)字。如果提供的值不是數(shù)值或不在此范圍內(nèi),則?sqlcmd?將生成錯(cuò)誤消息。?




-h?headers?
指定要在列標(biāo)題之間打印的行數(shù)。系統(tǒng)默認(rèn)為每組查詢結(jié)果打印一次標(biāo)題。此選項(xiàng)設(shè)置?sqlcmd?腳本變量?SQLCMDHEADERS。使用?-1?指定不能打印標(biāo)題。如果使用?-1,則在參數(shù)和設(shè)置之間沒有空格(可以是?-h-1,但不能是?-h?-1)。任何無效的值都將導(dǎo)致?sqlcmd?生成錯(cuò)誤消息,然后退出。

-s?col_separator?
指定列分隔符字符。默認(rèn)為空格。此選項(xiàng)設(shè)置?sqlcmd?腳本變量?SQLCMDCOLSEP。若要使用對(duì)操作系統(tǒng)有特殊含義的字符(如?and?字符?(&)?或分號(hào)?(;)),請(qǐng)將該字符用雙引號(hào)?(")?引起來。列分隔符可以是任意?8?位字符。

-w?column_width?
指定用于輸出的屏幕寬度。此選項(xiàng)設(shè)置?sqlcmd?腳本變量?SQLCMDCOLWIDTH。該列寬必須是介于?8?和?65536?之間的數(shù)字。如果指定的列寬不在此范圍內(nèi),則?sqlcmd?將生成錯(cuò)誤消息。默認(rèn)寬度為?80?個(gè)字符。在輸出行超出指定的列寬時(shí),將轉(zhuǎn)到下一行。

-a?packet_size?
需要不同大小的數(shù)據(jù)包。該選項(xiàng)設(shè)置?sqlcmd?腳本變量?SQLCMDPACKETSIZE。packet_size?必須是介于?512?和?32767?之間的值。如果腳本的兩個(gè)?GO?命令之間包含大量?SQL?語句,則使用較大的數(shù)據(jù)包可以提高腳本執(zhí)行的性能。您可以請(qǐng)求更大的數(shù)據(jù)包,但如果請(qǐng)求被拒絕,sqlcmd?將默認(rèn)為服務(wù)器默認(rèn)的數(shù)據(jù)包大小。

-e?
將輸入腳本打印到標(biāo)準(zhǔn)輸出設(shè)備?(stdout)。

-I?
將?SET?QUOTED_IDENTIFIER?連接選項(xiàng)設(shè)置為?ON。默認(rèn)情況下,將其設(shè)定為?OFF。有關(guān)詳細(xì)信息,請(qǐng)參閱?SET?QUOTED_IDENTIFIER?(Transact-SQL)。

-c?cmd_end?
指定批處理終止符。默認(rèn)情況下,通過單獨(dú)在一行中鍵入“GO”來終止命令并將其發(fā)送到?SQL?Server。重置批處理終止符時(shí),不要使用對(duì)操作系統(tǒng)具有特殊意義的?Transact-SQL?保留關(guān)鍵字或字符,即便它們前面有反斜杠也是如此。

-L?[?c?]?
列出在本地配置的服務(wù)器和在網(wǎng)絡(luò)上廣播的服務(wù)器的名稱。此參數(shù)不能與其他參數(shù)結(jié)合使用。可以列出的服務(wù)器的最大數(shù)目是?3000。如果服務(wù)器列表由于緩沖區(qū)大小而被截?cái)啵瑒t會(huì)顯示錯(cuò)誤消息。




-m?error_level?
自定義錯(cuò)誤消息的顯示。顯示高于指定嚴(yán)重級(jí)別的錯(cuò)誤的消息號(hào)、狀態(tài)和錯(cuò)誤級(jí)別。而不顯示嚴(yán)重級(jí)別低于指定級(jí)別的錯(cuò)誤的信息。用?-1?指定與消息一起返回所有標(biāo)題,即使是信息性的消息。如果指定了?-1,則在參數(shù)和設(shè)置之間不能有空格(例如,可以是?-m-1,但不能是?-m?-1)。

此選項(xiàng)設(shè)置?sqlcmd?腳本變量?SQLCMDERRORLEVEL。

-V?
指定?sqlcmd?報(bào)告的最低嚴(yán)重級(jí)別。Transact-SQL?腳本中發(fā)生錯(cuò)誤時(shí),僅當(dāng)嚴(yán)重級(jí)別大于或等于由?-V?開關(guān)指定的值時(shí),才報(bào)告嚴(yán)重級(jí)別。如果嚴(yán)重級(jí)別低于該值,則報(bào)告?0。命令提示符批處理文件可以測(cè)試?ERRORLEVEL?的值并適當(dāng)處理錯(cuò)誤。

-W?
此選項(xiàng)刪除列的尾隨空格。在準(zhǔn)備要導(dǎo)出到另一應(yīng)用程序的數(shù)據(jù)時(shí),請(qǐng)將此選項(xiàng)和?-s?選項(xiàng)結(jié)合使用。不能與?-y?或?-Y?選項(xiàng)結(jié)合使用。

-u?
指定無論?input_file?為何種格式,output_file?都以?Unicode?格式進(jìn)行存儲(chǔ)。?

-r?[?0?|?1]?
將錯(cuò)誤消息輸出重定向到屏幕?(stderr)。如果未指定參數(shù)或指定參數(shù)為?0,則僅重定向嚴(yán)重級(jí)別為?17?或更高的錯(cuò)誤消息。如果指定參數(shù)為?1,則將重定向所有消息輸出(包括?PRINT)。

-i?input_file[,input_file2
]?
標(biāo)識(shí)包含一批?SQL?語句或存儲(chǔ)過程的文件。可以指定要按順序讀取和處理的多個(gè)文件。文件名之間不要使用任何空格。sqlcmd?將首先檢查所有指定的文件是否都存在。如果有一個(gè)或多個(gè)文件不存在,sqlcmd?將退出。

-o?output_file?
標(biāo)識(shí)從?sqlcmd?接收輸出的文件。

如果指定了?-u,則?output_file?以?Unicode?格式存儲(chǔ)。包含空格的文件名必須用引號(hào)引起來。如果文件名無效,將生成一個(gè)錯(cuò)誤消息,并且?sqlcmd?將退出。sqlcmd?不支持向同一文件并發(fā)寫入多個(gè)?sqlcmd?進(jìn)程。文件輸出將損壞或不正確。有關(guān)文件格式的詳細(xì)信息,請(qǐng)參閱?-f?開關(guān)。?

-f?<?codepage?>?|?i:?<?codepage?>?[?<?,?o:?<?codepage?>?]?
指定輸入和輸出代碼頁。代碼頁頁碼是指定已安裝的?Windows?代碼頁的數(shù)值。?

-k?[?1?|?2?]?
刪除輸出中的所有控制字符,例如制表符和換行符。這會(huì)在返回?cái)?shù)據(jù)時(shí)保留列格式。如果指定了?1,則控制字符被一個(gè)空格替代。如果指定了?2,則連續(xù)的控制字符被一個(gè)空格替代。

處理 sql語句
osql.exe -E -e -n -d "_database name" -Q? "sql語句"?
批量處理
osql.exe -E -e -n -d "%DatabaseName%" -i "batchsqls.sql"
等....
最后
寫個(gè)批處理文件。運(yùn)行...
語法
sqlcmd?[ { { -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 ] [ -c cmd_end ] [ -L [ c ] ] [ -q "query" ] [ -Q "query" ] [ -m error_level ] [ -V ] [ -W ] [ -u ] [ -r [ 0 | 1 ] ] [ -i input_file ] [ -o output_file ] [ -f < codepage > | i: < codepage > [ < , o: < codepage > ] [ -k [ 1 | 2 ] ] [ -y display_width ] [-Y display_width ] [ -p [ 1 ] ] [ -R ] [ -b ] [ -v ] [ -A ] [ -X [ 1 ] ] [ -x ] [ -? ] ] |







































































































處理 sql語句
osql.exe -E -e -n -d "_database name" -Q? "sql語句"?
批量處理
osql.exe -E -e -n -d "%DatabaseName%" -i "batchsqls.sql"
等....
最后
寫個(gè)批處理文件。運(yùn)行...
posted on 2006-11-07 13:04 record java and net 閱讀(968) 評(píng)論(0) 編輯 收藏 所屬分類: Database