Sybase isql 語法

 

isql 實用工具使您得以輸入 Transact-SQL 語句、系統過程和腳本文件.

語法

isql

[-?] |

[-L] |

[

{

{-U login_id [-P password]}

| -E

}

[-S server_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] [-x max_text_size]

[-c cmd_end] [-q "query"] [-Q "query"]

[-n] [-m error_level] [-r {0 | 1}]

[-i input_file] [-o output_file] [-p]

[-b] [-O]

]

參數-?

顯示 isql 開關的語法摘要。

-L

列出在本地配置的服務器和在網絡上廣播的服務器的名稱。

-U login_id

用戶登錄 ID。登錄 ID 區分大小寫。

-P password

是用戶指定的密碼。如果未使用 -P 選項,isql 將提示輸入密碼。如果在命令提示的末尾使用 -P 選項而不帶密碼,isql 使用默認密碼 (NULL)。密碼區分大小寫。

ISQLPASSWORD 環境變量使您得以爲當前會話設置默認密碼。因此,不需要通過硬編碼來在批處理文件中設置密碼。

如果沒有爲 -P 選項指定密碼,isql 首先檢查 ISQLPASSWORD 變量。如果未設置值,isql 使用默認密碼 (NULL)。以下示例在命令提示處設置 ISQLPASSWORD 變量,然後訪問 isql 實用工具:

C:\>SET ISQLPASSWORD=abracadabra

C:\>isql

-E

使用信任連接而不請求密碼。

-S server_name

指定要連接到的 SQL Server 默認實例。isql 不支持連接到 SQL Server 2000 命名實例。如果未指定服務器,isql 將連接到本地計算機上的 SQL Server 默認實例。如果要在網絡上從遠程計算機執行 isql,則需要此選項。

-H wksta_name

是工作站名稱。工作站名稱存儲在 sysprocesses.hostname 中並由 sp_who 顯示。如果未指定,則採用當前計算機名稱。

-d db_name

啓動 isql 時發出一個 USE db_name 語句。

-l time_out

指定 isql 登錄超時之前的秒數。如果未指定 time_out 值,則命令無限期地運行。登錄到 isql 的默認超時爲 8 秒。

-t time_out

指定命令超時之前的秒數。如果未指定 time_out 值,則命令會無限期地運行;登錄到 isql 的默認超時爲 8 秒。

-h headers

指定要在列標題之間打印的行數。默認爲每一查詢結果集打印一次標題。使用 –1 指定不打印標題。如果使用 –1,則在參數和設置之間不能有空格(可以是 -h-1,不能是 -h –1)。

-s col_separator

指定列分隔符字符,其默認爲空格。若要使用對操作系統有特殊含義的字符(例如 | ; & < >),請將該字符用雙引號 (") 引起來。

-w column_width

允許用戶設置屏幕輸出的寬度。默認爲 80 個字符。當輸出行達到其最大屏幕寬度時,會拆分爲多個行。

-a packet_size

使您得以請求不同大小的數據包。packet_size 的有效值介於 512 和 65535 之間。Microsoft Windows NT&reg; 版中的 isql 默認值爲 8192;另外,Microsoft MS-DOS&reg; 版中的 isql 默認值爲 512,但在該版本中也可以請求更大的數據包。數據包大小的增加可以提高較大腳本執行的 性能,在這種執行中 GO 命令之間 SQL 語句的數量很重要。Microsoft 的測試表明 8192 是大容量複製操作典型的最快設置。可以請求更大的數據包大小,但是如果請求不能得到批准,則 isql 默認爲 512。

-e

回顯輸入。

-x max_text_size

指定返回文本數據的最大長度,以字節爲單位。長於 max_text_size 的文本值將被截斷。如果未指定 max_text_size,則文本數據在 4096 字節處截斷。

-c cmd_end

指定命令終止符。默認情況下,通過單獨在一行中輸入 GO 來終止命令並將其發送到 SQL Server 2000。在重置命令終止符時,不要使用對操作系統有特殊含義的 Transact-SQL 保留字或字符,無論其前面是否有反斜槓。

-q "query"

啓動 isql 時執行查詢,但是在查詢完成時不退出 isql。(注意查詢語句不應包含 GO)。如果從批處理文件中發出查詢,可使用 %variables。環境 %variables% 也可用。例如:

SET table = sysobjects

isql /q "Select * from %table%"

將查詢用雙引號引起來,將查詢中嵌入的任何內容用單引號引起來。

-Q "query"

執行查詢,在查詢完成時立即退出 isql。將查詢用雙引號引起來,將查詢中嵌入的任何內容用單引號引起來。

-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

標識從 isql 接收輸出的文件。大於 (>) 比較運算符可以用來代替 –o。

-p

打印性能統計。

-b

指定錯誤發生時 isql 退出並返回一個 DOS ERRORLEVEL 值。當 SQL Server 錯誤信息的嚴重級別爲 10 或更高時,返回給 DOS ERRORLEVEL 變量的值爲 1;否則,返回值爲 0。MS-DOS 批處理文件可以測試 DOS ERRORLEVEL 的值並適當處理錯誤。

-O

指定 isql 還原爲早期版本的行爲。下列功能停用:

EOF 批處理

控制檯寬度自動調整

寬信息

該選項還將 DOS ERRORLEVEL 的默認值設置爲 –1。

註釋

所有 DB-Library 應用程序(如 isql)連接到 SQL Server 2000 後,作爲 SQL Server 6.5 級客戶端工作。它們不支持 SQL Server 2000 的某些功能。而 osql 實用工具是基於 ODBC 並支持 SQL Server 2000 的全部功能。使用 osql 運行 isql 無法運行的腳本。有關 SQL Server 6.5 級客戶端限制的更多信息,請參見 SQL Server 聯機叢書中的將早期版本客戶端連接到 SQL Server 2000。

默認情況下,SQL 查詢分析器將 SQL 腳本保存爲 Unicode 文件。isql 實用工具不支持 Unicode 輸入文件。嘗試在 -i 開關中指定這些文件中的某一個時會導致錯誤 170:

Incorrect syntax near ' '.

使用 osql 實用工具運行這些 Unicode 文件。另一種方法是在 SQL 查詢分析器的"文件/另存爲"對話框的"文件格式"列表中指定 ANSI 而非 Unicode。

與大多數 DB-Library 應用程序類似,isql 實用工具在默認情況下不設置任何連接選項。用戶如果希望使用特定連接選項設置,必須交互地或在腳本中發出 SET 語句。

isql 實用工具從操作系統直接啓動,並且使用本文中列出的區分大小寫的選項。啓動後,isql 接受 Transact-SQL 語句並將它們交互地發送到 SQL Server 2000。結果將格式化並打印到標準輸出設備(屏幕)。可使用 QUIT 或 EXIT 退出 isql。

如果啓動 isql 時未指定用戶名,則 SQL Server 2000 將檢查環境變量並使用它們,如 isqluser=(user) 或 isqlserver=(server)。如果未設置環境變量,則使用工作站用戶名。如果未指定服務器,則使用工作站名稱。

如果 -U 或 -P 選項都沒有使用,則 SQL Server 2000 將嘗試使用 Windows 身份驗證模式進行連接。身份驗證基於運行 isql 的用戶的 Windows NT 帳戶。

例:

sybase/sql server2000
在cmd命令行下運行
isql -e -q "select * from aaa" -o d:\aaa.txt

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章