OPENDATASOURCE
不使用链接的服务器名,而提供特殊的连接信息,并将其作为四部分对象名的一部分。
OPENDATASOURCE 函数可以在能够使用链接服务器名的相同 Transact-SQL 语法位置中使用。因此,就可以将 OPENDATASOURCE 用作四部分名称的第一部分,该名称指的是 SELECT、INSERT、UPDATE 或 DELETE 语句中的表或视图的名称;或者指的是 EXECUTE 语句中的远程存储过程。当执行远程存储过程时,OPENDATASOURCE 应该指的是另一个 SQL Server。OPENDATASOURCE 不接受参数变量。与 OPENROWSET 函数类似,OPENDATASOURCE 应该只引用那些不经常访问的 OLE DB 数据源。对于访问次数稍多的任何数据源,请为它们定义链接的服务器。无论 OPENDATASOURCE 还是 OPENROWSET 都不能提供链接的服务器定义的全部功能,例如,安全管理以及查询目录信息的能力。每次调用 OPENDATASOURCE 时,都必须提供所有的连接信息(包括密码)。下面的示例访问来自某个表的数据,该表在 SQL Server 的另一个实例中。SELECT *
FROM OPENDATASOURCE(
'SQLOLEDB',
'Data Source=ServerName;User ID=MyUID;Password=MyPass'
).Northwind.dbo.Categories
不使用链接的服务器名,而提供特殊的连接信息,并将其作为四部分对象名的一部分。
OPENDATASOURCE 函数可以在能够使用链接服务器名的相同 Transact-SQL 语法位置中使用。因此,就可以将 OPENDATASOURCE 用作四部分名称的第一部分,该名称指的是 SELECT、INSERT、UPDATE 或 DELETE 语句中的表或视图的名称;或者指的是 EXECUTE 语句中的远程存储过程。当执行远程存储过程时,OPENDATASOURCE 应该指的是另一个 SQL Server。OPENDATASOURCE 不接受参数变量。与 OPENROWSET 函数类似,OPENDATASOURCE 应该只引用那些不经常访问的 OLE DB 数据源。对于访问次数稍多的任何数据源,请为它们定义链接的服务器。无论 OPENDATASOURCE 还是 OPENROWSET 都不能提供链接的服务器定义的全部功能,例如,安全管理以及查询目录信息的能力。每次调用 OPENDATASOURCE 时,都必须提供所有的连接信息(包括密码)。下面的示例访问来自某个表的数据,该表在 SQL Server 的另一个实例中。SELECT *
FROM OPENDATASOURCE(
'SQLOLEDB',
'Data Source=ServerName;User ID=MyUID;Password=MyPass'
).Northwind.dbo.Categories
包含访问 OLE DB 数据源中的远程数据所需的全部连接信息。当访问链接服务器中的表时,这种方法是一种替代方法,并且是一种使用 OLE DB 连接并访问远程数据的一次性的、特殊的方法。可以在查询的 FROM 子句中像引用表名那样引用 OPENROWSET 函数。依据 OLE DB 提供程序的能力,还可以将 OPENROWSET 函数引用为 INSERT、UPDATE 或 DELETE 语句的目标表。尽管查询可能返回多个结果集,然而 OPENROWSET 只返回第一个。
A. 将 OPENROWSET 与 SELECT 语句及用于 SQL Server 的 Microsoft OLE DB 提供程序一起使用
下面的示例使用用于 SQL Server 的 Microsoft OLE DB 提供程序访问 pubs 数据库中的 authors 表,该数据库在一个名为 seattle1 的远程服务器上。从 datasource、user_id 及 password 中初始化提供程序,并且使用 SELECT 语句定义返回的行集。USE pubs
GO
SELECT a.*
FROM OPENROWSET('SQLOLEDB','seattle1';'sa';'MyPass',
'SELECT * FROM pubs.dbo.authors ORDER BY au_lname, au_fname') AS a
GO
说明 如果所需要的组尚不存在,则单击生成("...")按钮创建它,并完成"服务器组"对话框。
执行下列一个或多个操作:
选择"在控制台中显示 SQL Server 服务器的状态"复选框以打开服务轮询。
选择"显示系统数据库和系统对象"复选框以显示所有系统数据库和对象。
选择"在连接时自动启动 SQL Server"复选框以自动启动 SQL Server 实例。
重复步骤 1 到 5,在"SQL Server 企业管理器"中注册每个服务器。
注册服务器 右击一个服务器或服务器组,然后单击"新建 SQL Server 注册"命令。
说明 如果上次使用注册服务器向导时,选择了"我希望今后在执行该任务时不使用向导"复选框,则 SQL Server 企业管理器将显示"已注册的 SQL Server 属性"对话框。否则,将启动注册服务器向导。在"服务器"框中,键入服务器名。
若要指定 SQL Server 企业管理器(作为客户端)与运行正在注册的 Microsoft® SQL Server™ 实例的服务器之间的连接,请执行下列操作之一:
单击"使用 Windows 身份验证"
-或-单击"使用 SQL Server 身份验证"
使用这种类型的连接,必须提供登录名和密码。选择"总是提示输入登录名和密码"复选框,以便总是提示用户输入登录名和密码,而不要将登录 ID 和密码保存在注册表中。