sql跨数据库查询两个表的方法,加急啊!!
列出两个表的数据
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
@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表名
0条评论