SQL Server 桌面引擎”|也叫 MSDE 2000使用方法的简单介绍。

SQL Server 桌面引擎”|也叫 MSDE 2000使用方法的简单介绍。
此文见于DBdashi博客,现转载如下:

1.概要

“SQL Server 桌面引擎”(也叫 MSDE 2000)没有自己的用户界面,因为它主要设计为在后台运行。用户通过 MSDE 2000 嵌入的程序与它交互。随 MSDE 2000 提供的唯一工具是 osql 。可执行文件 Sql.exe 在 MSDE 2000 的默认实例的 MSSQLBinn 文件夹中。本文重点讨论如何通过使用 osql 工具管理 MSDE 2000。

2.何为 Osql?

osql 工具是一个Microsoft Windows 32 命令提示符工具,您可以使用它运行 Transact-SQL 语句和脚本文件。osql 工具使用 ODBC 数据库应用程序编程接口 (API) 与服务器通讯。

3.如何使用 Osql?

一般情况下,可以这样使用osql 工具:

• 用户通过与使用命令提示符时相似的方式交互输入 Transact-SQL 语句。

• 用户提交 osql 作业,方法是: • 指定单个要运行的Transact-SQL 语句。 - 或 -

• 将该工具指向一个包含要运行的 Transact-SQL 语句的脚本文件。

交互式输入Transact-SQL 语句

如要显示 osql 工具的区分大小写的选项列表,请在命令提示符下键入如下内容,然后按ENTER 键:

osql -?

如想了解关于 osql 工具的每一选项的更多信息,请参见“SQL Server 联机图书”中的“osql Utility”主题。

4.如要交互输入 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 作业

一般情况下,您可以用两种方法之一提交 osql 作业。您可以: • 指定单个 Transact-SQL 语句。

- 或 -

• 将该工具指向一个脚本文件。

下面将详细介绍每一种方法。

指定单个Transact-SQL 语句

如要针对 MSDE 2000的本地默认实例运行Transact-SQL,请键入与下面这一个类似的命令:

osql -E -q "Transact-SQLstatement"

其中

• -E 表示使用 Microsoft Windows NT 身份验证。

• -q 表示运行 Transact-SQL 语句,但是在查询结束时不退出 osql。

如要运行Transact-SQL 语句并退出 osql,请使用 -Q 参数来代替 -q。

将该工具指向一个脚本文件

如要将该工具指向一个脚本文件,请按照下列步骤操作:

创建一个包含一批Transact-SQL 语句的脚本文件(如myQueries.sql)。

打开命令提示符,键入与下面类似的一个命令,然后按 ENTER 键:

osql -E -i input_file

其中 input_file 是脚本文件及其完整路径。例如,如果脚本文件 myQueries.sql 在 C:Queries 文件夹中,请将参数 input_file 替换为 C:QueriesmyQueries.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桌面引擎 (MSDE2000)

如要连接到 MSDE2000,请按照下列步骤操作: 1.确认 MSDE 2000 正在运行。

在承载您要连接的 MSDE2000 实例的计算机上打开一个命令窗口。

键入下面的命令,然后按ENTER 键:

osql -E

这可以通过使用Windows 身份验证将您连接到 MSDE2000 的本地默认实例。

如要连接到 MSDE2000 的一个命名实例,请键入:

osql -E -S servernameinstancename

如果您收到了下面的错误消息,表明 MSDE 2000 可能未在运行,或者您可能为安装的 MSDE 2000 的命名实例提供了错误的名称:

[Shared Memory]SQL Server does not exist oraccess denied.

[Shared Memory]ConnectionOpen (Connect()).

如果您成功连接到了该服务器,就会出现下面的提示:

命令提示符:1>

此提示表示 osql 已启动。现在,您可以交互输入 Transact-SQL 语句,运行结果将出现在命令提示行上。

osql 的使用方法

1.>连接数据库(sa 为连接的用户名,714 是密码)

osql -U sa -P714

osql -E (与信任的用户连接)

2.>执行sql脚本文件

osql -U sa -P 714 -i file.sql

osql -Efile.sql

3.>备份数据库(test是我要备份的数据库名,将其备份到C盘,并命名为:mydb.bak)

BACKUP DATABASEtest TO DISK = 'C:/mydb.bak'

4.>将一个名为 test 的数据库从备份文件 C:/Mydb.bak 中还原

RESTORE DATABASEmydb FROM DISK ='C:mydb.bak'

5.>将一个名为 mydb 的数据库从 SQL Server 的当前实例中分离出来

EXECsp_detach_db 'mydb'

6.>将来自名为 mydb 的数据库的两个文件附加到 SQL Server

EXEC sp_attach_db @dbname = N'mydb',

@filename1 = N'C:/mydb.mdf',

@filename2 = N'C:/mydb.ldf'

管理 MSDE 2000

本文下面的部分将向您简单介绍管理 MSDE 2000 时最常用的 Transact-SQL 命令。

新建登录帐户

未提供有效登录 id 的用户无法连接到 SQL Server。可调用 sp_grantlogin 存储过程来授权一个 Microsoft Windows 网络帐户(一个组或者一个用户帐户),使之作为一个使用 Windows 身份验证连接到 SQL Server 实例的 SQL Server 登录帐户。下面的示例允许一个名为 CorporateTest 的 Windows NT 用户连接到 SQL Server 实例:

EXEC sp_grantlogin 'CorporateTest'

只有 sysadmin 或 securityadmin 固定服务器角色的成员可以运行 sp_grantlogin 存储过程。有关这些角色的更多信息,请参见“SQL Server 联机图书”中“Roles, SQL ServerArchitecture”主题。

有关sp_grantlogin 存储过程的更多信息,请参见“SQLServer 联机图书”中的“sp_grantlogin,Transact-SQL Reference”主题。

您可以使用sp_addlogin 存储过程创建一个使用 SQLServer 身份验证建立 SQLServer 连接的新登录帐户。下面的示例为一个名叫“test”的用户创建了一个密码为“hello”的 SQL Server 登录:

EXEC sp_addlogin 'test','hello'

只有 sysadmin 和 securityadmin 固定服务器角色的成员可以运行 sp_addlogin 存储过程。有关 sp_addlogin 存储过程的更多信息,请参见“SQL Server 联机图书”中的“sp_addlogin, Transact-SQLReference”主题。

访问数据库

在用户连接到 SQLServer 的一个实例后,他们只有在dbo 授予他们对数据库的访问权后才可以在数据库中执行活动。您可以使用 sp_grantdbaccess 存储过程为新用户向当前数据库中添加一个安全帐户。下面的示例为一个名叫 CorporateBobJ 的 Microsoft Windows NT 的用户向当前数据库添加了一个帐户,并将其命名为“Bob”:

EXEC sp_grantdbaccess 'CorporateBobJ','Bob'

sp_adduser 存储过程执行与 sp_grantdbaccess 存储过程相同的功能。因为包括 sp_adduser 存储过程是为了向后兼容,所以 Microsoft 建议您使用 sp_grantdbacess 存储过程。

只有 sysadmin 固定服务器角色、db_accessadmin 和 db_owner 固定数据库角色的成员才可以运行 sp_grantdbaccess 存储过程。有关 sp_grantdbaccess 存储过程的更多信息,请参见“SQL Server 联机图书”中的“sp_grantdbaccess,Transact-SQL Reference”主题。

推荐阅读