加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码门户网 (https://www.92codes.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQLServer 跨库查询实现方法 sql跨数据库查询方法

发布时间:2022-10-30 14:10:28 所属栏目:MsSql教程 来源:互联网
导读: SQLServer 跨库查询实现方法 sql跨数据库查询方法
2022-10-17 04:40网络整理发布
本文给出一条 SQL 语句用于展示在同一名服务器上,不同的数据库间查询,注意当前连接用户要对两个库都有权

SQLServer 跨库查询实现方法 sql跨数据库查询方法

2022-10-17 04:40网络整理发布

本文给出一条 SQL 语句用于展示在同一名服务器上,不同的数据库间查询,注意当前连接用户要对两个库都有权限SQL Server 中 SQL ......

本文给出一条 SQL 语句用于展示在同一名服务器上mssql 完整外部连接,不同的数据库间查询,注意当前连接用户要对两个库都有权限

SQL Server 中 SQL 语句中对象的完整表达式是:

[DatabaseServer].[DatabaseName].[DatabaseSchema].[DatabaseObject]

本文给出一条 SQL 语句用于展示在同一名服务器上,不同的数据库间查询,注意当前连接用户要对两个库都有权限。

复制代码 代码如下:

select *

from CfteaDb1.dbo.CfteaTable1 inner join CfteaDb2.dbo.CfteaTable2

on CfteaDb1.dbo.CfteaTable1.Id=CfteaDb2.dbo.CfteaTable2.Id

以上在 SQL Server 2008 R2 的 Management Studio 中测试成功。

下面是一些补充资料

不使用链接的服务器名,而提供特殊的连接信息,并将其作为四部分对象名的一部分。

语法

OPENDATASOURCE ( provider_name, init_string )

参数

provider_name

注册为用于访问数据源的 OLE DB 提供程序的 PROGID 的名称。provider_name 的数据类型为 char,没有默认值。

init_string

连接字符串,这些字符串将要传递给目标提供程序的 IDataInitialize 接口。提供程序字符串语法是以关键字值对为基础的,这些关键字值对由分号隔开,例如:"keyword1=value; keyword2=value."

在 Microsoft? Data Access SDK 中定义了基本语法。有关所支持的特定关键字值对的信息,请参见提供程序中的文档。下表列出 init_string 参数中最常用的关键字。

关键字OLE DB 属性有效值和描述

数据源

DBPROP_INIT_DATASOURCE

要连接的数据源的名称。不同的提供程序用不同的方法对此进行解释。对于 SQL Server OLE DB 提供程序来说,这会指明服务器的名称。对于 Jet OLE DB 提供程序来说,这会指明 .mdb 文件或 .xls 文件的完整路径。

位置

DBPROP_INIT_LOCATION

要连接的数据库的位置。

扩展属性

DBPROP_INIT_PROVIDERSTRING

提供程序特定的连接字符串。

连接超时

DBPROP_INIT_TIMEOUT

超时值,在该超时值后,连接尝试将失败。

用户 ID

DBPROP_AUTH_USERID

用于该连接的用户 ID。

密码

DBPROP_AUTH_PASSWORD

用于该连接的密码。

目录

DBPROP_INIT_CATALOG

连接到数据源时的初始或默认的目录名称。

注释

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

下面是个查询的示例,它通过用于 Jet 的 OLE DB 提供程序查询 Excel 电子表格。

复制代码 代码如下:

SELECT *

FROM OpenDataSource( "Microsoft.Jet.OLEDB.4.0",

"Data Source="c:Financeaccount.xls";User ID=Admin;Password=;Extended properties=Excel 5.0")...xactions

(编辑:源码门户网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!