osql

osql

osql 工具是一個 Microsoft Windows 32 命令提示符工具,您可以使用它運行 Transact-SQL 語句和腳本文件。osql 工具使用 ODBC 資料庫應用程序編程介面 (API) 與伺服器通訊。

如何使用


一般情況下,可以這樣使用 osql 工具:
用戶通過與使用命令提示符時相似的方式交互輸入 Transact-SQL 語句。
用戶提交 osql 作業,方法是:指定單個要運行的 Transact-SQL 語句。 - 或 -
將該工具指向一個包含要運行的 Transact-SQL 語句的腳本文件。
互動式輸入 Transact-SQL 語句
如要顯示 osql 工具的區分大小寫的選項列表,請在命令提示符下鍵入如下內容,然後按 ENTER 鍵:
osql -?
如想了解關於 osql 工具的每一選項的更多信息,請參見“SQL Server 聯機圖書”中的“osql Utility”主題。
如要交互輸入 Transact-SQL 語句,請按照下列步驟操作:
1. 確認 MSDE 2000 正在運行。
2. 連接到 MSDE 2000(有關更多信息,請參見標題為“連接到 SQL Server 桌面引擎 (MSDE 2000)”的部分)。
3. 在 osql 命令提示符下,鍵入 Transact-SQL 語句,然後按 ENTER 鍵。當您在輸入的每一行后按 ENTER 鍵時,osql 將緩存該命令行上的語句。
如要運行當前緩存的語句,請鍵入“Go”,接著按 ENTER 鍵。
如要運行一批 Transact-SQL 語句,請分別在單獨的行上輸入每一個 Transact-SQL 命令。然後,在最後一行上鍵入“Go”以表示批處理命令的結束並運行當前緩存的語句。
運行結果出現在控制台窗口。
4. 當您在輸入的每一行后按 ENTER 鍵時,如想從 osql 退出,請鍵入 QUIT 或 EXIT,並按 ENTER 鍵。

提交作業


一般情況下,您可以用兩種方法之一提交 osql 作業。您可以:指定單個 Transact-SQL 語句。
- 或 -
將該工具指向一個腳本文件。
下面將詳細介紹每一種方法。

單T-SQL語句

指定單個 Transact-SQL 語句
如要針對 MSDE 2000 的本地默認實例運行 Transact-SQL,請鍵入與下面這一個類似的命令:
osql -E -q "Transact-SQL statement"
其中
-E 表示使用 Microsoft Windows NT 身份驗證。
-而-
-q 表示運行 Transact-SQL 語句,但是在查詢結束時不退出 osql。
如要運行 Transact-SQL 語句並退出 osql,請使用 -Q 參數來代替 -q。
將該工具指向一個腳本文件
如要將該工具指向一個腳本文件,請按照下列步驟操作: 1. 創建一個包含一批 Transact-SQL 語句的腳本文件(如 myQueries.sql)。

腳本法

打開命令提示符,鍵入與下面類似的一個命令,然後按 ENTER 鍵:
osql -E -i input_file
其中
input_file 是腳本文件及其完整路徑。例如,如果腳本文件 myQueries.sql 在 C:\Queries 文件夾中,請將參數 input_file 替換為 C:\Queries\myQueries.sql。
該腳本文件的運行結果將出現在控制台窗口中。如果您想將運行結果定向到一個文件,請向上述命令中添加 -ooutput_file 參數。例如:
osql -E -i input_file -o output_file
其中
output_file 是輸出文件及其完整路徑。
如想消除輸出結果中的編號和提示符號,請向上述命令中添加 -n 選項。例如:
osql -E -i input_file -o output_file -n

回到頂端


連接到 SQL Server 桌面引擎 (MSDE 2000)
如要連接到 MSDE 2000,請按照下列步驟操作: 1. 確認 MSDE 2000 正在運行。
2. 在承載您要連接的 MSDE 2000 實例的計算機上打開一個命令窗口。
3. 鍵入下面的命令,然後按 ENTER 鍵:
osql -E
這可以通過使用 Windows 身份驗證將您連接到 MSDE 2000 的本地默認實例。
如要連接到 MSDE 2000 的一個命名實例,請鍵入:
osql -E -S servername\instancename
如果您收到了下面的錯誤消息,表明 MSDE 2000 可能未在運行,或者您可能為安裝的 MSDE 2000 的命名實例提供了錯誤的名稱:
[Shared Memory]SQL Server does not exist or access denied.
[Shared Memory]ConnectionOpen (Connect()).
如果您成功連接到了該伺服器,就會出現下面的提示:
1>
此提示表示 osql 已啟動。現在,您可以交互輸入 Transact-SQL 語句,運行結果將出現在命令提示行上。