sqlserver 跨库连接 mysql_SQLServer实现跨库跨服务器访问的方法

本文详细介绍了如何在SQLServer中实现跨库和跨服务器访问数据库,包括在同一台服务器上创建数据库、表,进行跨库查询,以及使用同义词解决名称变更问题。同时,文章提及了不同服务器上的跨库访问方法,并预告了分库分表的实现讨论。

前言

我们经常会遇到一个数据库要访问另一个数据库,或者一台服务器要访问另一台服务器里面的数据库。 那么这个如何实现的呢? 相信看完这篇文章你就懂了!

同一台服务器跨库访问实现

1. 首先创建两个数据库CrossLibraryTable1,CrossLibraryTable2

--创建CrossLibraryTable1脚本:

use master --打开master数据库,一般的创建语句都在master中执行.

go

if exists (select * from sysdatabases where name='CrossLibraryTable1')

drop database CrossLibraryTable1 /*检查有没有这个数据库,如果有就删除它。*/

go

create database CrossLibraryTable1

on primary

(

name='CrossLibraryTable1_data', ------------ 养成好习惯,数据文件加_data

filename='F:\代码存放\数据库\CrossLibraryTable1_data.mdf', ------------ 一定要是.mdf的文件,代表主数据文件

size=5mb, --默认数据库大小

maxsize=100mb, --最大容量

filegrowth=1mb --增长量

)

log on

(

name='CrossLibraryTable1_log', ------------ 养成好习惯,日志文件加_log

filename='F:\代码存放\数据库\CrossLibraryTable1_log.ldf', ------------ 一定要是.ldf的文件,代表日志文件

size=1mb, --默认数据库大小

filegrowth=10% --增长量

)

--创建CrossLibraryTable2脚本:

use master --打开master数据库,一般的创建语句都在master中执行.

go

if exists (select * from sysdatabases where name='CrossLibraryTable2')

drop database CrossLibraryTable2 /*检查有没有这个数据库,如果有就删除它。*/

go

create database CrossLibraryTable2

on primary

(

name='CrossLibraryTable2_data', ------------ 养成好习惯,数据文件加_data

filename='F:\代码存放\数据库\CrossLibraryTable2_data.mdf', ------------ 一定要是.mdf的文件,代表主数据文件

size=5mb, --默认数据库大小

maxsize=100mb, --最大容量

filegrowth=1mb --增长量

)

log on

(

name='CrossLibraryTable2_log', ------------ 养成好习惯,日志文件加_log

filename='F:\代码存放\数据库\CrossLibraryTable2_log.ldf', ------------ 一定要是.ldf的文件,代表日志文件

size=1mb, --默认数据库大小

filegrowth=10% --增长量

)

然后,执行完脚本后,刷新一下就可以看到刚刚创建的数据库了:

a10786ff5cf3b33501f3dc951b4579c1.png

2.接下来在两个数据库里面分别创建一个CrossTest1和一个CrossTest2表用于跨库查询

--创建CrossTest1脚本:

use CrossLibraryTable1

create table CrossTest1(

Id int primary key identity,

Name nvarchar(20)

)

--创建CrossTest2脚本:

use CrossLibraryTable2

create table CrossTest2(

Id int primary key identity,

Name nvarchar(20)

)

表创建好后,我们再添加几条数据进去:

use CrossLibraryTable1

insert into CrossTest1 values('跨库1测试数据1')

insert into CrossTest1 values('跨库1测试数据2')

use CrossLibraryTable2

insert into CrossTest2 values('跨库2测试数据1')

insert into CrossTest2 values('跨库2测试数据2')

切换到CrossLibraryTable1下面查询CrossLibraryTable2的数据可以看到报如下错误

1e5151034658b394106ad2ea8c726725.png

修正代码:

3f08553094e09aaf2c55562bfbc6bed2.png

PS:像上面那样是可以进行查询,然而在项目中使用上面的代码格式就会引发一些问题,那什么问题呢?比如另一个数据库的名称改变了,我们就需要把所有用到这个的地方都得改掉,这样就很麻烦,那么有什么解决方案么,使得改一处就好了?当然有,用数据库同义词就可以轻松搞定!

创建同义词步骤如下:

ce2baafe8def0b5028087cc04b41f596.png

c077ed708f44e71577c2dc9a12d71905.png

dcccfdc969482c382661924a45ab6ee9.png

不同服务器跨库访问实现

当数据库在不同服务器上面,用上面的方法就不行了,那如何实现跨服务器访问呢?很简单,看下面↓↓↓

157809858d9e4b26d8b1304e611c33de.png

b7d5516f2cd9c6ce362125e6d3104ced.png

16f20bb55d43ec3c2a96a5a175842483.png

c8ac2a6ccff152642a12dd96a0ef570d.png

好了,SQL Server跨库跨服务器访问实现就到这了,如果按照步骤一步一步操作的话,相信您也已经实现了,下一篇文章就来谈谈分库分表实现。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。

您可能感兴趣的文章:SQLServer 跨库查询实现方法

SQL Server 跨库同步数据

MSSQLSERVER跨服务器连接(远程登录)的示例代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值