成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

HOW TO:使用 Osql 工具管理 SQL Server 桌面引擎 (MSDE 2000

瀏覽:126日期:2023-10-29 17:23:56

轉(zhuǎn)自msdn

本頁概要 何為 Osql? 如何使用 Osql? 交互式輸入 Transact-SQL 語句 提交 Osql 作業(yè) 連接到 SQL Server 桌面引擎 (MSDE 2000) 管理 MSDE 2000 新建登錄帳戶 訪問數(shù)據(jù)庫 如何更改登錄密碼 創(chuàng)建數(shù)據(jù)庫 備份和還原數(shù)據(jù)庫 附加和分離數(shù)據(jù)庫 參考 這篇文章中的信息適用于:

概要“SQL Server 桌面引擎”(也叫 MSDE 2000)沒有自己的用戶界面,因為它主要設(shè)計為在后臺運行。用戶通過 MSDE 2000 嵌入的程序與它交互。隨 MSDE 2000 提供的唯一工具是 osql 。可執(zhí)行文件 Sql.exe 在 MSDE 2000 的默認實例的 MSSQLBinn 文件夾中。本文重點討論如何通過使用 osql 工具管理 MSDE 2000。

回到頂端

何為 Osql?osql 工具是一個 Microsoft Windows 32 命令提示符工具,您可以使用它運行 Transact-SQL 語句和腳本文件。osql 工具使用 ODBC 數(shù)據(jù)庫應(yīng)用程序編程接口 (API) 與服務(wù)器通訊。

回到頂端

如何使用 Osql?一般情況下,可以這樣使用 osql 工具:• 用戶通過與使用命令提示符時相似的方式交互輸入 Transact-SQL 語句。 • 用戶提交 osql 作業(yè),方法是: • 指定單個要運行的 Transact-SQL 語句。 - 或 -

• 將該工具指向一個包含要運行的 Transact-SQL 語句的腳本文件。

交互式輸入 Transact-SQL 語句如要顯示 osql 工具的區(qū)分大小寫的選項列表,請在命令提示符下鍵入如下內(nèi)容,然后按 ENTER 鍵:

osql -?

如想了解關(guān)于 osql 工具的每一選項的更多信息,請參見“SQL Server 聯(lián)機圖書”中的“osql Utility”主題。

如要交互輸入 Transact-SQL 語句,請按照下列步驟操作:

1. 確認 MSDE 2000 正在運行。 2. 連接到 MSDE 2000(有關(guān)更多信息,請參見標題為“連接到 SQL Server 桌面引擎 (MSDE 2000)”的部分)。 3. 在 osql 命令提示符下,鍵入 Transact-SQL 語句,然后按 ENTER 鍵。 當您在輸入的每一行后按 ENTER 鍵時,osql 將緩存該命令行上的語句。

• 如要運行當前緩存的語句,請鍵入“Go”,接著按 ENTER 鍵。

• 如要運行一批 Transact-SQL 語句,請分別在單獨的行上輸入每一個 Transact-SQL 命令。然后,在最后一行上鍵入“Go”以表示批處理命令的結(jié)束并運行當前緩存的語句。

運行結(jié)果出現(xiàn)在控制臺窗口。

4. 當您在輸入的每一行后按 ENTER 鍵時,如想從 osql 退出,請鍵入 QUIT 或 EXIT,并按 ENTER 鍵。

提交 Osql 作業(yè)一般情況下,您可以用兩種方法之一提交 osql 作業(yè)。您可以: • 指定單個 Transact-SQL 語句。

- 或 -

• 將該工具指向一個腳本文件。 下面將詳細介紹每一種方法。

指定單個 Transact-SQL 語句

如要針對 MSDE 2000 的本地默認實例運行 Transact-SQL,請鍵入與下面這一個類似的命令:

osql -E -q 'Transact-SQL statement'

其中

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

-而-

• -q 表示運行 Transact-SQL 語句,但是在查詢結(jié)束時不退出 osql。 如要運行 Transact-SQL 語句并退出 osql,請使用 -Q 參數(shù)來代替 -q。

將該工具指向一個腳本文件

如要將該工具指向一個腳本文件,請按照下列步驟操作: 1. 創(chuàng)建一個包含一批 Transact-SQL 語句的腳本文件(如 myQueries.sql)。 2. 打開命令提示符,鍵入與下面類似的一個命令,然后按 ENTER 鍵:

osql -E -i input_file

其中

input_file 是腳本文件及其完整路徑。例如,如果腳本文件 myQueries.sql 在 C:Queries 文件夾中,請將參數(shù) input_file 替換為 C:QueriesmyQueries.sql。

該腳本文件的運行結(jié)果將出現(xiàn)在控制臺窗口中。如果您想將運行結(jié)果定向到一個文件,請向上述命令中添加 -ooutput_file 參數(shù)。例如:

osql -E -i input_file -o output_file

其中

output_file 是輸出文件及其完整路徑。

如想消除輸出結(jié)果中的編號和提示符號,請向上述命令中添加 -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 servernameinstancename

如果您收到了下面的錯誤消息,表明 MSDE 2000 可能未在運行,或者您可能為安裝的 MSDE 2000 的命名實例提供了錯誤的名稱: [Shared Memory]SQL Server does not exist or access denied.[Shared Memory]ConnectionOpen (Connect()). 如果您成功連接到了該服務(wù)器,就會出現(xiàn)下面的提示:

1>此提示表示 osql 已啟動。現(xiàn)在,您可以交互輸入 Transact-SQL 語句,運行結(jié)果將出現(xiàn)在命令提示行上。;

回到頂端

管理 MSDE 2000本文下面的部分將向您簡單介紹管理 MSDE 2000 時最常用的 Transact-SQL 命令。

新建登錄帳戶未提供有效登錄 id 的用戶無法連接到 SQL Server。可調(diào)用 sp_grantlogin 存儲過程來授權(quán)一個 Microsoft Windows 網(wǎng)絡(luò)帳戶(一個組或者一個用戶帳戶),使之作為一個使用 Windows 身份驗證連接到 SQL Server 實例的 SQL Server 登錄帳戶。下面的示例允許一個名為 CorporateTest 的 Windows NT 用戶連接到 SQL Server 實例: EXEC sp_grantlogin 'CorporateTest'只有 sysadmin 或 securityadmin 固定服務(wù)器角色的成員可以運行 sp_grantlogin 存儲過程。有關(guān)這些角色的更多信息,請參見“SQL Server 聯(lián)機圖書”中“Roles, SQL Server Architecture”主題。

有關(guān) sp_grantlogin 存儲過程的更多信息,請參見“SQL Server 聯(lián)機圖書”中的“sp_grantlogin, Transact-SQL Reference”主題。

您可以使用 sp_addlogin 存儲過程創(chuàng)建一個使用 SQL Server 身份驗證建立 SQL Server 連接的新登錄帳戶。下面的示例為一個名叫“test”的用戶創(chuàng)建了一個密碼為“hello”的 SQL Server 登錄: EXEC sp_addlogin 'test','hello'只有 sysadmin 和 securityadmin 固定服務(wù)器角色的成員可以運行 sp_addlogin 存儲過程。有關(guān) sp_addlogin 存儲過程的更多信息,請參見“SQL Server 聯(lián)機圖書”中的“sp_addlogin, Transact-SQL Reference”主題。

訪問數(shù)據(jù)庫在用戶連接到 SQL Server 的一個實例后,他們只有在 dbo 授予他們對數(shù)據(jù)庫的訪問權(quán)后才可以在數(shù)據(jù)庫中執(zhí)行活動。您可以使用 sp_grantdbaccess 存儲過程為新用戶向當前數(shù)據(jù)庫中添加一個安全帳戶。下面的示例為一個名叫 CorporateBobJ 的 Microsoft Windows NT 的用戶向當前數(shù)據(jù)庫添加了一個帳戶,并將其命名為“Bob”:

EXEC sp_grantdbaccess 'CorporateBobJ', 'Bob'

sp_adduser 存儲過程執(zhí)行與 sp_grantdbaccess 存儲過程相同的功能。因為包括 sp_adduser 存儲過程是為了向后兼容,所以 Microsoft 建議您使用 sp_grantdbacess 存儲過程。

只有 sysadmin 固定服務(wù)器角色、db_accessadmin 和 db_owner 固定數(shù)據(jù)庫角色的成員才可以運行 sp_grantdbaccess 存儲過程。有關(guān) sp_grantdbaccess 存儲過程的更多信息,請參見“SQL Server 聯(lián)機圖書”中的“sp_grantdbaccess, Transact-SQL Reference”主題。

如何更改登錄密碼如要修改登錄密碼,請使用 sp_password 存儲過程。下面的示例將“test”登錄的密碼從“ok”更改為“hello”: EXEC sp_password 'ok', 'hello','test'

執(zhí)行權(quán)限默認授予正在更改其自己的登錄密碼的用戶的公共角色。只有 sysadmin 角色才可以為其他用戶更改登錄密碼。有關(guān) sp_password 存儲過程的更多信息,請參見“SQL Server 聯(lián)機圖書中”的“sp_password, Transact-SQL Reference”主題。 創(chuàng)建數(shù)據(jù)庫MSDE 2000 數(shù)據(jù)庫由一個表的集合組成,這些表中包含數(shù)據(jù)和其他對象,如視圖、索引、存儲過程和事件觸發(fā)器,這些內(nèi)容定義為支持對數(shù)據(jù)執(zhí)行的各種活動。如要創(chuàng)建 MSDE 2000 數(shù)據(jù)庫,請使用“CREATE DATABASE”Transact-SQL 命令。有關(guān) 創(chuàng)建數(shù)據(jù)庫的更多信息,請參見“SQL Server 聯(lián)機圖書”中的“Creating a Database”主題。

下面的示例創(chuàng)建了一個名為 Test 的數(shù)據(jù)庫。因為沒有向該命令行添加其他參數(shù),所以 Test 數(shù)據(jù)庫將與 model 數(shù)據(jù)庫大小相同: CREATE DATABASE TestCREATE DATABASE 權(quán)限默認授予 sysadmin 和 dbcreator 固定服務(wù)器角色的成員。有關(guān)“CREATE DATABASE”命令的更多信息,請參見“SQL Server 聯(lián)機圖書”中的“CREATE DATABASE, Transact-SQL Reference”主題。

如要創(chuàng)建一個新的數(shù)據(jù)庫對象,請使用“CREATE Transact-SQL”命令。例如,要新建一個表,請使用“CREATE TABLE”Transact-SQL 命令。有關(guān)更多信息,請參考“SQL Server 聯(lián)機圖書”。

備份和還原數(shù)據(jù)庫SQL Server 的備份和還原組件為保護存儲在 SQL Server 數(shù)據(jù)庫中的關(guān)鍵數(shù)據(jù)提供了一個重要的保護措施。

通過適當?shù)囊?guī)劃,您可以從許多故障中恢復(fù),包括:• 存儲媒體故障。 • 用戶錯誤。 • 服務(wù)器的永久丟失。; 另外,備份和還原數(shù)據(jù)庫還有其他方面的用途,例如將數(shù)據(jù)庫從一個服務(wù)器復(fù)制到另一個服務(wù)器。通過從一臺計算機上備份一個數(shù)據(jù)庫和將此數(shù)據(jù)庫還原到另一臺計算機上,您可以快速方便地制作數(shù)據(jù)庫的副本。

有關(guān)數(shù)據(jù)庫備份和還原操作方面的更多信息,請參見“SQL Server 聯(lián)機圖書”中的“Backing Up and Restoring Databases”主題。

下面的示例為一個名為 mydb的數(shù)據(jù)庫執(zhí)行完全數(shù)據(jù)庫備份,將此備份命名為 Mydb.bak,然后將此備份存儲在 C:MsdeBackup 文件夾中。

BACKUP DATABASE mydb TO DISK = 'C:MSDEBackupmydb.bak'

下面的示例為一個名為 mydb 的數(shù)據(jù)庫執(zhí)行日志備份,將此備份命名為 Mydb_log.bak,然后將其存儲在 C:MsdeBackup 文件夾中:

BACKUP LOG mydb TO DISK = 'C:MSDEBackupmydb_log.bak'

BACKUP DATABASE 和 BACKUP LOG 權(quán)限默認授予 sysadmin 固定服務(wù)器角色以及 db_owner 和 db_backupoperator 固定數(shù)據(jù)庫角色的成員。有關(guān) BACKUP 語句的更多信息,請參見“SQL Server 聯(lián)機圖書”中的“BACKUP, Transact-SQL Reference”主題。

MSDE 包括 SQL Server 代理程序服務(wù)用以管理安排的作業(yè)。例如,您可以創(chuàng)建并安排一個 Transact-SQL 備份作業(yè)。SQL Server 代理程序服務(wù)管理作業(yè)安排。如想查看演示如何在 MSDE 2000 中使用各種存儲過程執(zhí)行和安排備份的示例代碼,請參見下面的 Microsoft 知識庫文章: 241397 (http://support.microsoft.com/kb/241397/EN-US/) HOWTO:Back Up a Microsoft Data Engine Database with Transact-SQL 有關(guān) SQL Server 代理程序服務(wù)的更多信息,請參見“SQL Server 聯(lián)機圖書”中的“SQL Server Agent Service”主題。

備份數(shù)據(jù)庫只是全部過程的一半。知道如何從備份中還原數(shù)據(jù)庫也非常重要。下面的示例將一個名為 mydb 的數(shù)據(jù)庫從備份文件 C:MsdeBackupMydb.bak 中還原:

RESTORE DATABASE mydb FROM DISK ='C:MSDEBackupmydb.bak'如果將要還原的數(shù)據(jù)庫不存在,則用戶必須具有 CREATE DATABASE 權(quán)限才可以運行 RESTORE 語句。如果該數(shù)據(jù)庫存在,則 RESTORE 權(quán)限默認授予 sysadmin 和 dbcreator 固定服務(wù)器角色的成員,以及該數(shù)據(jù)庫的所有者 (dbo)。有關(guān) RESTORE 語句的更多信息,請參見“SQL Server 聯(lián)機圖書”中的“RESTORE, Transact-SQL Reference”主題。 附加和分離數(shù)據(jù)庫可以分離一個數(shù)據(jù)庫的數(shù)據(jù)和事務(wù)日志文件然后將其重新附加到另一個服務(wù)器,或重新附加到同一服務(wù)器。分離一個數(shù)據(jù)庫雖然從 SQL Server 中刪除了該數(shù)據(jù)庫,但構(gòu)成該數(shù)據(jù)庫的數(shù)據(jù)和事務(wù)日志文件沒有任何改動。 然后您可以使用這些數(shù)據(jù)和事務(wù)日志文件將該數(shù)據(jù)庫附加到任何 SQL Server 實例,其中包括從中分離該數(shù)據(jù)庫的那一服務(wù)器。這使該數(shù)據(jù)庫能夠以與在被分離時完全相同的狀態(tài)供在其他位置使用。有關(guān)更多信息,請參見 “SQL Server 聯(lián)機圖書”中的“Attaching and Detaching a Database”主題。

下面的示例將一個名為 mydb 的數(shù)據(jù)庫從 SQL Server 的當前實例中分離出來: EXEC sp_detach_db 'mydb'只有 sysadmin 固定服務(wù)器角色的成員才可以運行 sp_detach_db 存儲過程。有關(guān) sp_detach_db 存儲過程的更多信息,請參見“SQL Server 聯(lián)機圖書”中的“sp_detach_db, Transact-SQL Reference”主題。

下面的示例將來自名為 mydb 的數(shù)據(jù)庫的兩個文件附加到 SQL Server 的當前實例: EXEC sp_attach_db @dbname = N'mydb', @filename1 = N'C:MSDEBackupmydb.mdf', @filename2 = N'C:MSDEBackupmydb.ldf'大寫字母“N”用來給“Unicode 字符串”常量添加前綴。“N”前綴代表 SQL-92 標準中的區(qū)域語言。有關(guān)詳細信息,請參見 Microsoft 知識庫中的以下文章: 239530 (http://support.microsoft.com/kb/239530/EN-US/) INF:Unicode String Constants in SQL Server Require N Prefix 只有 sysadmin 和 dbcreator 固定服務(wù)器角色的成員才可以運行此過程。有關(guān) sp_attach_db 存儲過程的更多信息,請參見“SQL Server 聯(lián)機圖書”中的“sp_attach_db, Transact-SQL Reference”主題。 下面關(guān)于 osql 工具使用方面的信息適用于所有版本的 Microsoft SQL Server 2000。

回到頂端

參考如要下載“SQL Server 2000 聯(lián)機圖書”的更新版本,請訪問下面的 Microsoft Web 站點: http://www.microsoft.com/sql/techinfo/productdoc/2000/books.asp (http://support.microsoft.com/?scid=http%3a%2f%2fwww.microsoft.com%2fsql%2ftechinfo%2fproductdoc%2f2000%2fbooks.asp)如要下載“SQL Server 聯(lián)機圖書”的 SQL Server 7.0 版,請訪問下面的 Microsoft Web 站點: http://download.microsoft.com/download/SQL70/File/2/Win98/En-US/SQLBOL.exe (http://download.microsoft.com/download/sql70/file/2/win98/en-us/sqlbol.exe)有關(guān) MSDE 2000 的更多信息,請參見下列 Microsoft 知識庫文章: 319930 (http://support.microsoft.com/kb/319930/EN-US/) HOW TO:Connect to Microsoft Desktop Engine 241397 (http://support.microsoft.com/kb/241397/EN-US/) HOWTO:Back Up a Microsoft Desktop Engine Database with Transact-SQL