sql備忘-osql 實用工具
osql 實用工具 來自msdn
語法

參數
-U?login_id?
用戶登錄?ID。登錄?ID?區分大小寫。


如果?-U?選項和?-P?選項均未指定,sqlcmd?將嘗試使用?Microsoft?Windows?身份驗證模式進行連接。身份驗證基于運行?sqlcmd?的用戶的?Windows?帳戶。

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

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



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

-E?選項會忽略可能的用戶名和密碼環境變量設置,例如?SQLCMDPASSWORD。如果將?-E?選項與?-U?選項或?-P?選項一起使用,將生成錯誤消息。?

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

指定?server_name?將連接到該服務器中?SQL?Server?的默認實例。指定?server_name\instance_name?將連接到該服務器中?SQL?Server?的命名實例。如果未指定服務器,sqlcmd?將連接到本地計算機上的?SQL?Server?的默認實例。從網絡上的遠程計算機執行?sqlcmd?時,此選項是必需的。

如果在啟動?sqlcmd?時未指定用戶名,SQL?Server?將檢查并使用?SQLCMDSERVER?環境變量。如果未指定服務器,則使用工作站名稱。



-H?wksta_name?
工作站的名稱。此選項設置?sqlcmd?腳本變量?SQLCMDWORKSTATION。該工作站名稱在?sys.processes?目錄視圖的?hostname?列中列出,并可使用存儲過程?sp_who?返回。如果未指定此選項,則使用當前計算機名稱。此名稱可用來標識不同的?sqlcmd?會話。

-d?db_name?
啟動?sqlcmd?時發出一個?USE?db_name?語句。此選項設置?sqlcmd?腳本變量?SQLCMDDBNAME。它指定初始數據庫。如果數據庫不存在,則生成錯誤消息且?sqlcmd?退出。

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

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




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

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

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

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

-e?
將輸入腳本打印到標準輸出設備?(stdout)。

-I?
將?SET?QUOTED_IDENTIFIER?連接選項設置為?ON。默認情況下,將其設定為?OFF。有關詳細信息,請參閱?SET?QUOTED_IDENTIFIER?(Transact-SQL)。

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

-L?[?c?]?
列出在本地配置的服務器和在網絡上廣播的服務器的名稱。此參數不能與其他參數結合使用。可以列出的服務器的最大數目是?3000。如果服務器列表由于緩沖區大小而被截斷,則會顯示錯誤消息。




-m?error_level?
自定義錯誤消息的顯示。顯示高于指定嚴重級別的錯誤的消息號、狀態和錯誤級別。而不顯示嚴重級別低于指定級別的錯誤的信息。用?-1?指定與消息一起返回所有標題,即使是信息性的消息。如果指定了?-1,則在參數和設置之間不能有空格(例如,可以是?-m-1,但不能是?-m?-1)。

此選項設置?sqlcmd?腳本變量?SQLCMDERRORLEVEL。

-V?
指定?sqlcmd?報告的最低嚴重級別。Transact-SQL?腳本中發生錯誤時,僅當嚴重級別大于或等于由?-V?開關指定的值時,才報告嚴重級別。如果嚴重級別低于該值,則報告?0。命令提示符批處理文件可以測試?ERRORLEVEL?的值并適當處理錯誤。

-W?
此選項刪除列的尾隨空格。在準備要導出到另一應用程序的數據時,請將此選項和?-s?選項結合使用。不能與?-y?或?-Y?選項結合使用。

-u?
指定無論?input_file?為何種格式,output_file?都以?Unicode?格式進行存儲。?

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

-i?input_file[,input_file2
]?
標識包含一批?SQL?語句或存儲過程的文件??梢灾付ㄒ错樞蜃x取和處理的多個文件。文件名之間不要使用任何空格。sqlcmd?將首先檢查所有指定的文件是否都存在。如果有一個或多個文件不存在,sqlcmd?將退出。

-o?output_file?
標識從?sqlcmd?接收輸出的文件。

如果指定了?-u,則?output_file?以?Unicode?格式存儲。包含空格的文件名必須用引號引起來。如果文件名無效,將生成一個錯誤消息,并且?sqlcmd?將退出。sqlcmd?不支持向同一文件并發寫入多個?sqlcmd?進程。文件輸出將損壞或不正確。有關文件格式的詳細信息,請參閱?-f?開關。?

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

-k?[?1?|?2?]?
刪除輸出中的所有控制字符,例如制表符和換行符。這會在返回數據時保留列格式。如果指定了?1,則控制字符被一個空格替代。如果指定了?2,則連續的控制字符被一個空格替代。

處理 sql語句
osql.exe -E -e -n -d "_database name" -Q? "sql語句"?
批量處理
osql.exe -E -e -n -d "%DatabaseName%" -i "batchsqls.sql"
等....
最后
寫個批處理文件。運行...
語法
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"
等....
最后
寫個批處理文件。運行...
posted on 2006-11-07 13:04 record java and net 閱讀(972) 評論(0) 編輯 收藏 所屬分類: Database