sql跨数据库查询两个表的方法,加急啊!!

sql跨数据库查询两个表的方法,加急啊!!,第1张

列出两个表的数据

select from [AAA]Table1 a inner join

[BBB]Table2 b on aid1 = bid2

只BBB表里的数据

Select from [BBB]Table2 b where bid2

in(Select aid1 from [AAA]Table1 a)

AAA和BBB是数据库名   数据库名和表名之间放两个点

Exec sp_droplinkedsrvlogin DBVIP,Null

Exec sp_dropserver DBVIP

EXEC sp_addlinkedserver

@server='DBVIP',--被访问的服务器别名

@srvproduct='',

@provider='SQLOLEDB',

@datasrc="/Server2" --要访问的服务器

EXEC sp_addlinkedsrvlogin

'DBVIP', --被访问的服务器别名

'false',

NULL,

'sa', --帐号

'thankyoubobby' --密码

Select from DBVIPpubsdboorders

--查看当前链接情况:

select from sysservers;

--使用 sp_helpserver 来显示可用的服务器

Exec sp_helpserver

--删除已经存在的某个链接

Exec sp_droplinkedsrvlogin 服务器别名,Null

Exec sp_dropserver 服务器别名

--使用sp_addlinkedserver来增加链接

EXEC sp_addlinkedserver

@server='192168266',--被访问的服务器别名(习惯上直接使用目标服务器IP,或取个别名如:JOY)

@srvproduct='',

@provider='SQLOLEDB',

@datasrc='192168266' --要访问的服务器

--使用sp_addlinkedsrvlogin 来增加用户登录链接

EXEC sp_addlinkedsrvlogin

'192168266', --被访问的服务器别名(如果上面sp_addlinkedserver中使用别名JOY,则这里也是JOY)

'false',

NULL,

'sa', --帐号

'test123' --密码

使用举例(访问目标服务器上的数据库Music,查看其中表test的内容):

如果建立链接时的别名是目标服务器IP,即192168266

则:

select from [192168266][Music]dbotest

如果建立链接时的别名是JOY,

则:

select from [JOY][Music]dbotest

可能会遇到的问题:

exec sp_dropserver 'JOY'执行失败,

报错信息:仍有对服务器 'JOY' 的远程登录或链接登录。

解决方法:

exec sp_droplinkedsrvlogin 'JOY',null

exec sp_dropserver 'JOY'

神通数据库跨库连接这样设置:

1、配置网络连接:确保不同数据库所在的服务器之间可以互相访问。需要配置防火墙规则、网络域名解析等,以确保网络连接的可用性。

2、配置数据库用户权限:在每个数据库中创建对应的用户,并为其授予合适的连接权限和跨库访问权限。确保该用户具备在相关数据库中执行查询、插入、更新等操作的权限。

3、配置数据库连接字符串:在连接数据库的应用程序或工具中,根据具体的语言或工具要求,配置正确的数据库连接字符串。该字符串应包含连接目标数据库的地址、端口、用户名、密码等信息,并指明要访问的数据库名称。

4、执行跨库查询或操作:在应用程序中使用合适的SQL语句或工具中提供的功能,编写并执行跨库查询或操作。这通常涉及使用完全限定的表名(包括数据库名称),以确保正确访问目标数据库。

opendatasource('sqloledb,'Data Source=服务器地址;UserID=sa;Password=pass@word1 ')数据库名字dbo[表名] 这是跨服务器的调用,如不是不是跨服务器,直接数据库名dbo表名

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » sql跨数据库查询两个表的方法,加急啊!!

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情