HOW TO:使用 Osql 公用程式管理 SQL Server Desktop Engine (MSDE 2000)

文章翻譯 文章翻譯
文章編號: 325003 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

結論

SQL Server Desktop Engine (也稱為 MSDE 2000) 沒有屬於自己的使用者介面,因為它主要是設計在背景中執行。使用者可以透過內嵌 MSDE 2000 的程式,與 MSDE 2000 進行互動。唯一與 MSDE 2000 一起提供的工具是 osql 公用程式。可執行檔 Sql.exe 位在 MSDE 2000 預設執行個體的 MSSQL\Binn 資料夾中。本文件將說明如何使用 osql 公用程式來管理 MSDE 2000。

什麼是 Osql?

Osql 公用程式是一個 Microsoft Windows 32 命令提示字元公用程式,您可以用它來執行 Transact-SQL 陳述式與指令碼檔案。Osql 公用程式使用 ODBC 資料庫應用程式介面 (API,Application Programming Interface) 來與伺服器進行通訊。

如何使用 Osql?

一般來說,使用 osql 公用程式的方法有:
  • 使用者使用類似命令提示字元的互動方式輸入 Transact-SQL 陳述式。
  • 使用者以下列方式提交 osql 作業:
    • 指定要執行的單一 Transact-SQL 陳述式。-或-

    • 指定包含有 Transact-SQL 陳述式的指令碼檔案所要執行的公用程式。

互動式輸入 Transact-SQL 陳述式

如果要顯示 osql 公用程式的區分大小寫選項清單,請在命令提示字元鍵入下列命令,再按下 ENTER:

osql -?

如需更多有關 osql 公用程式每個選項的詳細資訊,請參閱《SQL Server 線上叢書》中的<osql 公用程式>主題。

如果要以互動方式輸入 Transact-SQL 陳述式,請依照下列步驟執行:

  1. 確認 MSDE 2000 正在執行中。
  2. 連線到 MSDE 2000 (如需更多資訊,請參閱<連線到 SQL Server Desktop Engine (MSDE 2000)>一節)。
  3. osql 提示鍵入 Transact-SQL 陳述式,再按下 ENTER。當您在每個輸入行結尾按下 ENTER 時,osql 就會快取輸入行上的陳述式。

    • 如果要執行目前快取的陳述式,請鍵入 Go,再按下 ENTER。

    • 如果要批次執行 Transact-SQL 陳述式,請將每個 Transact-SQL 命令分別輸入為一行。然後在最後一行鍵入 Go 以通知抵達批次結尾,並執行目前快取的陳述式。

    執行結果會顯示在主控台視窗中。

  4. 如果要離開 osql,請鍵入 QUIT 或 EXIT,再於輸入行結尾按下 ENTER。

提交 Osql 作業

一般來說,提交 osql 作業有兩種方法。您可以:
  • 指定單一 Transact-SQL 陳述式。

    -或-

  • 指定指令碼檔案的公用程式。
下列是這兩種方法的詳細說明。

指定單一 Transact-SQL 陳述式

如果要以 MSDE 2000 的本機預設執行個體執行 Transact-SQL 陳述式,請鍵入與下列類似的命令

osql -E -q "Transact-SQL 陳述式"

其中

  • -E 表示使用 Microsoft Windows NT 驗證。

    -及-

  • -q 表示執行 Transact-SQL 陳述式但查詢完成時不離開 osql
如果要執行 Transact-SQL 陳述式並在查詢完成時離開 osql,請使用 -Q 引數取代 -q

指出指令碼檔案的公用程式

如果要指出指令碼檔案的公用程式,請依照下列步驟執行:
  1. 建立其中包含 Transact-SQL 陳述式批次的指令碼檔案 (例如 myQueries.sql)。
  2. 開啟命令提示字元,鍵入與下列類似的命令,再按下 ENTER

    osql -E -i 輸入檔案

    其中

    輸入檔案 是指令碼檔案的完整路徑。例如,如果指令碼檔案 myQueries.sql 位在 C:\Queries 資料夾中,參數輸入檔案就要取代為 C:\Queries\myQueries.sql。

    指令碼檔案的執行結果會顯示在主控台視窗中。如果您想要將執行結果導向至檔案,請在先前展示的命令中加入 -o輸出檔案引數。例如:

    osql -E -i 輸入檔案 -o 輸出檔案

    其中

    輸出檔案 是輸出檔案的完整路徑。

    如果要移除輸出檔案中的行號及提示符號,請在先前展示的命令中加入 -n 選項。例如:

    osql -E -i 輸入檔案 -o 輸出檔案 -n

連線到 SQL Server Desktop Engine (MSDE 2000)

如果要連線到 MSDE 2000,請依照下列步驟執行:
  1. 確認 MSDE 2000 正在執行中。
  2. 在裝載著您想要連線的 MSDE 2000 執行個體的電腦上開啟命令提示字元。
  3. 鍵入下列命令,再按下 ENTER:

    osql -E

    這個命令會使用「Windows 帳戶驗證」,將您連線到本機上的 MSDE 2000 預設執行個體。

    如果要連線到 MSDE 2000 的具名執行個體,請鍵入:

    osql -E -S 伺服器名稱\執行個體名稱

    如果您收到下列錯誤訊息,表示 MSDE 2000 可能不在執行中,或您提供的已安裝 MSDE 2000 具名執行個體的名稱不正確:
    [共用記憶體]SQL Server 不存在或拒絕存取。
    [共用記憶體]ConnectionOpen (Connect())。
    如果您順利連線到伺服器,會出現下列提示字元:

       1>
    						
    這個提示字元表示 osql 已經啟動。現在,您可以互動方式輸入 Transact-SQL 陳述式,而結果會顯示在命令提示字元列上。

管理 MSDE 2000

本文的後續章節將為您簡介最常用於管理 MSDE 2000 的 Transact-SQL 命令。

建立新的登入

在沒有提供有效登入識別碼的情況下,使用者無法連線到 SQL Server。sp_grantlogin 預存程序是用來授權 Microsoft Windows 網路帳戶 (群組或使用者帳戶皆可),使它可作為連線到使用「Windows 帳戶驗證」的 SQL Server 執行個體的 SQL Server 登入。下列是允許名為 Corporate\Test 的 Windows NT 使用者連線到 SQL Server 執行個體的範例:
EXEC sp_grantlogin 'Corporate\Test'				
只有 sysadminsecurityadmin 固定伺服器角色的成員可以執行 sp_grantlogin 預存程序。如需更多有關角色的詳細資訊,請參閱《SQL Server 線上叢書》中的<角色,SQL Server 架構>主題。

如需更多有關 sp_grantlogin 預存程序的詳細資訊,請參閱《SQL Server 線上叢書》中的<sp_grantlogin,Transact-SQL 參照>主題。

您使用 sp_addlogin 預存程序來建立使用「SQL Server 帳戶驗證」的 SQL Server 連線的新登入帳戶。下列範例會建立名稱是 test、密碼為 hello 之使用者的 SQL Server 登入:
EXEC sp_addlogin 'test','hello'				
只有 sysadminsecurityadmin 固定伺服器角色的成員可以執行 sp_addlogin 預存程序。如需更多有關 sp_addlogin 預存程序的詳細資訊,請參閱《SQL Server 線上叢書》中的<sp_addlogin,Transact-SQL 參照>主題。

存取資料庫

使用者連線到 SQL Server 執行個體之後,必須由 dbo 授予資料庫存取權才能在資料庫中執行動作。您可以使用 sp_grantdbaccess 預存程序,在目前的資料庫新增新使用者的安全性帳戶。下列範例會在目前資料庫新增名為 Corporate\BobJ 的 Microsoft Windows NT 使用者的帳戶,並將帳戶命名為 Bob:
EXEC sp_grantdbaccess 'Corporate\BobJ', 'Bob'				

sp_adduser 預存程序所執行的功能與 sp_grantdbaccess 預存程序相同。因為 sp_adduser 預存程序包含在回溯相容性中,Microsoft 建議您使用 sp_grantdbacess 預存程序。

只有 sysadmin 固定伺服器角色的成員,以及 db_accessadmindb_owner 固定資料庫角色的成員可以執行 sp_grantdbaccess 預存程序。如需更多有關 sp_grantdbaccess 預存程序的詳細資訊,請參閱《SQL Server 線上叢書》中的<sp_grantdbaccess,Transact-SQL 參照>主題。

如何變更登入的密碼

如果要變更登入的密碼,請使用 sp_password 預存程序。下列範例會將登入 test 的密碼從 ok 變更為 hello:
EXEC sp_password 'ok', 'hello','test'				

使用者的 Public 角色的預設執行權限,僅限於變更使用者本身的登入密碼。只有 sysadmin 角色可以變更其他使用者的登入密碼。如需更多有關 sp_password 預存程序的詳細資訊,請參閱《SQL Server 線上叢書》中的<sp_password,Transact-SQL 參照>主題。

建立資料庫

MSDE 2000 資料庫是由包含資料及其他物件 (例如:檢視表、索引、預存程序及觸發器) 的資料表集合所組成的,它的目的是支援執行資料的動作。如果要建立 MSDE 2000 資料庫,請使用 Transact-SQL 命令 CREATE DATABASE。如需更多有關建立資料庫的詳細資訊,請參閱《SQL Server 線上叢書》中的<建立資料庫>主題。

下列範例會建立名為 Test 的資料庫。因為命令沒有附加任何參數,所以 Test 資料庫的大小會與 model 資料庫的大小相同:
CREATE DATABASE Test				
依預設,sysadmindbcreator 固定伺服器角色的成員都具有 CREATE DATABASE 權限。如需更多有關 CREATE DATABASE 命令的詳細資訊,請參閱《SQL Server 線上叢書》中的<CREATE DATABASE,Transact-SQL 參照>主題。

如果要建立新的資料庫物件,請使用 Transact-SQL 命令 CREATE。例如,如果要建立新的資料表,請使用 Transact-SQL 命令 CREATE TABLE。如需其他詳細資訊,請參閱《SQL Server 線上叢書》。

備份及還原資料庫

SQL Server 的備份及還原元件,為保護 SQL Server 資料庫中的重要資料提供非常重要的防護。

有了適當的規劃,您就可以從許多失敗復原資料,這些失敗包括:
  • 媒體失敗。
  • 使用者錯誤。
  • 伺服器完全毀損。
此外,備份及還原資料庫有助於其他用途,例如在伺服器間複製資料庫。快速又輕鬆製作資料庫複本的方法,就是將某一部電腦上的資料庫備份還原到另一部電腦上。

如需更多有關資料庫備份及還原作業的詳細資訊,請參閱《SQL Server 線上叢書》中的<備份及還原資料庫>主題。

下列範例會對名為 mydb 的資料庫執行完整的備資料庫備份,並將備份命名為 Mydb.bak,然後將此備份儲存在 C:\Msde\Backup 資料夾中:

BACKUP DATABASE mydb TO DISK = 'C:\MSDE\Backup\mydb.bak'				

下列範例會對名為 mydb 的資料庫執行記錄檔備份,並將備份命名為 Mydb_log.bak,然後將此備份儲存在 C:\Msde\Backup 資料夾中:

BACKUP LOG mydb TO DISK = 'C:\MSDE\Backup\mydb_log.bak'				

依預設,sysadmin 固定伺服器角色的成員,以及 db_ownerdb_backupoperator 固定資料庫角色的成員具有 BACKUP DATABASE 及 BACKUP LOG 權限。如需更多有關 BACKUP 陳述式的詳細資訊,請參閱《SQL Server 線上叢書》中的<BACKUP,Transact-SQL 參照>主題。


MSDE 包含可管理排程作業的 SQL Server 代理程式服務。舉例來說,您可以建立並排程 Transact-SQL 備份作業。SQL Server 代理程式服務可以管理作業排程。如需有關如何使用 MSDE 2000 的各種預存程序來執行備份及排程備份的範例程式碼,請參閱下列的「Microsoft 知識庫」文件:
241397 HOWTO:使用 Transact-SQL 備份 Microsoft Data Engine 資料庫 (此連結可能連結至尚未中文化的英文知識庫文件)
如需更多有關 SQL Server 代理程式服務的詳細資訊,請參閱《SQL Server 線上叢書》中的<SQL Server 代理程式服務>主題。

備份資料庫僅只是完成一半程序。瞭解如何從備份還原資料庫是很重要的。下列範例會從備份檔案 C:\Msde\Backup\Mydb.bak 還原名為 mydb 的資料庫:

RESTORE DATABASE mydb FROM DISK ='C:\MSDE\Backup\mydb.bak'				
如果正在還原的資料庫不存在,使用者必須擁有可以執行 RESTORE 陳述式的 CREATE DATABASE 權限。如果資料庫存在,依預設,sysadmindbcreator 固定伺服器角色的成員,以及資料庫的擁有者 (dbo) 具有 RESTORE 權限。如需更多有關 RESTORE 陳述式的詳細資訊,請參閱《SQL Server 線上叢書》中的<RESTORE,Transact-SQL 參照>主題。

附加及卸離資料庫

資料庫的資料及異動記錄檔可以卸離,然後再重新附加到另一部伺服器或原來的伺服器。卸離資料庫會從 SQL Server 移除資料庫,但會完整無缺地保留組成資料庫的資料及異動記錄檔。接著,您可以使用這些資料及異動記錄檔,將資料庫附加到任何的 SQL Server 執行個體,包括將這個資料庫卸離的伺服器。這樣可以使資料庫的實際可用性維持在它被卸離時的狀態。如需更多詳細資訊,請參閱 《SQL Server 線上叢書》中的<附加及卸離資料庫>主題。

下列範例會從目前的 SQL Server 執行個體卸離名為 mydb 的資料庫:
EXEC sp_detach_db 'mydb'				
只有 sysadmin 固定伺服器角色的成員可以執行 sp_detach_db 預存程序。如需更多有關 sp_detach_db 預存程序的詳細資訊,請參閱《SQL Server 線上叢書》中的<sp_detach_db,Transact-SQL 參照>主題。

下列範例會將名為 mydb 資料庫中的兩個檔案附加到目前的 SQL Server 執行個體:
EXEC sp_attach_db @dbname = N'mydb',    @filename1 = N'C:\MSDE\Backup\mydb.mdf',    @filename2 = N'C:\MSDE\Backup\mydb.ldf'				
大寫字母 N 是用來作為 Unicode 字串常數的前置詞。「N」前置詞代表的是 SQL-92 標準中的國際語言 (National Language)。如需詳細資訊,請參閱下列「Microsoft 知識庫」文件:
239530 INF:SQL Server 中的 Unicode 字串常數需要 N 前置詞
只有 sysadmindbcreator 固定伺服器角色的成員可以執行這個程序。如需更多有關 sp_attach_db 預存程序的詳細資訊,請參閱《SQL Server 線上叢書》中的<sp_attach_db,Transact-SQL 參照>主題。

下列有關使用 osql 公用程式的資訊,同時也適用於所有版本的 Microsoft SQL Server 2000。

?考

如果要下載《SQL Server 2000 線上叢書》的更新版本,請造訪下列 Microsoft 網站:
http://www.microsoft.com/downloads/details.aspx?FamilyId=A6F79CB1-A420-445F-8A4B-BD77A7DA194B&displaylang=zh-tw
如果要下載《SQL Server 線上叢書》的 SQL Server 7.0 版本,請造訪下列 Microsoft 網站:
http://download.microsoft.com/download/SQL70/File/2/Win98/En-US/SQLBOL.exe
如需更多有關 MSDE 2000 的詳細資訊,請參閱下列「Microsoft 知識庫」文件:
319930 HOW TO:連線至 Microsoft 桌面引擎
241397 HOWTO:使用 Transact-SQL 備份 Microsoft Desktop Engine 資料庫 (此連結可能連結至尚未中文化的英文知識庫文件)

屬性

文章編號: 325003 - 上次校閱: 2004年8月13日 - 版次: 1.3
這篇文章中的資訊適用於:
  • Microsoft SQL Server 2000 Desktop Engine (Windows)
  • Microsoft SQL Server 2000 Desktop Engine (MSDE) SP3a
關鍵字:?
kbdownload kbhowtomaster KB325003
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。
依現狀不再更新的知識庫內容免責聲明
本文旨在說明 Microsoft 不再提供支援的產品。因此,本文係依「現狀」提供,不會再更新。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com