码迷,mamicode.com
首页 > 数据库 > 详细

SQL Server跨库跨服务器访问实现

时间:2019-06-19 15:11:25      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:轻松   代码   inf   刷新   value   identity   测试数据   from   数据库   

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

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

  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% --增长量
)

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

技术图片

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的数据可以看到报如下错误

技术图片

修正代码:

技术图片

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

创建同义词步骤如下:

技术图片

技术图片

技术图片

 不同服务器跨库访问实现

  有的时候两个数据库在不同的服务器上,那么用上面的方法就不行了,那么如果实现跨服务器访问数据库呢?很简单,看下面↓↓↓

 

SQL Server跨库跨服务器访问实现

标签:轻松   代码   inf   刷新   value   identity   测试数据   from   数据库   

原文地址:https://www.cnblogs.com/shuai7boy/p/11049919.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!