SQL Server实现跨库跨服务器访问的方法

前言

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

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

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跨库跨服务器访问实现就到这了,如果按照步骤一步一步操作的话,相信您也已经实现了,下一篇文章就来谈谈分库分表实现。

总结

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

(0)

相关推荐

  • SQL Server 跨库同步数据

    最近有个需求是要跨库进行数据同步,两个数据库分布在两台物理计算机上,自动定期同步可以通过SQL Server代理作业来实现,但是前提是需要编写一个存储过程来实现同步逻辑处理.这里的存储过程用的不是opendatasource,而是用的链接服务器来实现的.存储过程创建在IP1:192.168.0.3服务器上,需要将视图v_custom的客户信息同步到IP2:192.168.0.10服务器上的t_custom表中.逻辑是如果不存在则插入,存在则更新字段. create PROCEDURE [dbo]

  • SQLServer 跨库查询实现方法

    本文给出一条 SQL 语句用于展示在同一名服务器上,不同的数据库间查询,注意当前连接用户要对两个库都有权限SQL Server 中 SQL 语句中对象的完整表达式是: [DatabaseServer].[DatabaseName].[DatabaseSchema].[DatabaseObject] 本文给出一条 SQL 语句用于展示在同一名服务器上,不同的数据库间查询,注意当前连接用户要对两个库都有权限. 复制代码 代码如下: select * from CfteaDb1.dbo.CfteaTa

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

    MSSQLSERVER跨服务器链接服务器创建方法如下 复制代码 代码如下: --声明变量  Declare @svrname varchar(255),  @dbname varchar(255), @sapassword varchar(255)   --请在执行前,根据实际情况修改下列变量 select @svrname  = '目标服务器名',       @dbname   = '目标数据库',   @sapassword  = 目标数据库密码    if exists ( select

  • SQL Server实现跨库跨服务器访问的方法

    前言 我们经常会遇到一个数据库要访问另一个数据库,或者一台服务器要访问另一台服务器里面的数据库. 那么这个如何实现的呢? 相信看完这篇文章你就懂了! 同一台服务器跨库访问实现 1. 首先创建两个数据库CrossLibraryTable1,CrossLibraryTable2 --创建CrossLibraryTable1脚本: use master --打开master数据库,一般的创建语句都在master中执行. go if exists (select * from sysdatabases

  • SQL Server复制需要有实际的服务器名称才能连接到服务器

    服务器上安装的WIN2008 R2,然后没有在意机器名,安装了SQL2008 R2数据库之后,配置AD域的时候修改了机器名. 然后,开始配置数据库镜像同步的时候,先试了下数据库复制发布,结果提示"SQL Server 复制需要有实际的服务器名称才能连接到服务器.不支持通过服务器别名.IP 地址或任何其他备用名称进行连接.请指定实际的服务器名称...",如下图所示. 网上查了下,有同学总结说是机器名不对,这才想起来之前确实修改过机器名,只是本次链接数据库中的实例用的是IP或别名形式的地址

  • SQL Server 2017无法连接到服务器的问题解决

    目录 方法一 方法二 方法三 方法四 方法五 安装了几次数据库,也由于后续自己手残修改过电脑IP 端口 甚至主机名称等等而导致出现Sql sever无法连接错误,此笔记记录这次沉重的历史,以备不时之需. 这次的原因就是因为主机默认名称被修改了(寒假手残,回学校7周后才有事用SQL sever然鹅早已忘记啥原因) 错误如上,本来按照网上教程去解决,都应ok的 方法一 便是在服务中开启这些东西 尤其是SQL Server代理 方法二 1.打开Sql server 管理配置器 或者在命令行输入:SQL

  • SQL Server附加数据库时出现错误的处理方法

    目录 前言 一.如何附加数据库? 二.无法升级数据库,出现(539类似版本号不匹配)错误解决办法 1.常见的无法附加数据库时,出现的错误 2.无法升级数据库的解决办法 总结 前言 SQL Server 是数据库软件中比较常见且实用的软件,它的集成度很高,且功能非常强大.很多类型的网站系统后台数据库都依赖于SQL Server.但是,对于初学者而言,在操作过程中总是会出现各种各样的错误.现在,我对“无法升级数据库”这种报错信息,做详细处理流程的讲解. 一.如何附加数据库? 1.选择要添加的数据库文

  • SQL Server 2005删除日志文件的几种方法小结

    使用MS数据库的朋友就会知道一个问题,C盘的空间很容易被占满了.因为本来系统盘就分区比较小,这是由于数据库在使用过程中会使日志文件不断增加,使得数据库的性能下降,并且占用大量的磁盘空间.SQL Server数据库都有log文件,log文件记录用户对数据库修改的操作.可以通过直接删除log文件和清空日志在清除数据库日志. 一.删除LOG1.分离数据库.分离数据库之前一定要做好数据库的全备份,选择数据库--右键--任务--分离. 勾选删除连接 分离后在数据库列表将看不到已分离的数据库. 2.删除LO

  • SQL server中提示对象名无效的解决方法

    产生SQL对象名无效的问题大多原因是由于数据迁移导致的,下面我们给出解决方法. 在使用数据库的过程中,经常会遇到数据库迁移或者数据迁移的问题,或者有突然的数据库损坏,这时需要从数据库的备份中直接恢复.但是,此时会出现问题,这里说明几种常见问题的解决方法. 一.孤立用户的问题 比如,以前的数据库的很多表是用户test建立的,但是当我们恢复数据库后,test用户此时就成了孤立用户,没有与之对应的登陆用户名,哪怕你建立了一个test登录用户名,而且是以前的用户密码,用该用户登录后同样没办法操作以前属于

  • Windows Server 2019 WEB和FTP服务器的配置方法

    Windows Server 2019 WEB和FTP服务器配置 1:添加新角色:WEB.FTP服务 步骤2:添加网站 步骤3:访问网站进行测试 步骤4:添加FTP站点 步骤5:添加FTP站点测试 完成! 到此这篇关于Windows Server 2019 WEB和FTP服务器的配置方法的文章就介绍到这了,更多相关win2019 WEB和FTP服务器内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

  • SQL server服务显示远程过程调用失败的解决方法

    刚刚打开SQL Server 2008,想要新建一个数据库,却发现出现了一个问题,这个问题由于之前没有遇到过,所以下面整理解决SQL server服务远程调用失败的几个方法,供大家参考,具体内容如下 先看看出现的问题: 出现上面这个错误的原因可能是由于咱们在装VS2012或者其他版本的时候,这个VS会自动装"Microsoft SQL Server 2013(2012) ExpressLocalDB"服务,所以导致SQL server2008,中SQL server服务显示远程过程调用

  • SQL Server 公用表表达式(CTE)实现递归的方法

    公用表表达式简介: 公用表表达式 (CTE) 可以认为是在单个 SELECT.INSERT.UPDATE.DELETE 或 CREATE VIEW 语句的执行范围内定义的临时结果集.CTE 与派生表类似,具体表现在不存储为对象,并且只在查询期间有效.与派生表的不同之处在于,公用表表达式 (CTE) 具有一个重要的优点,那就是能够引用其自身,从而创建递归 CTE.递归 CTE 是一个重复执行初始 CTE 以返回数据子集直到获取完整结果集的公用表表达式. 下面先创建一个表,并插入一些数据: crea

  • SQL server高并发生成唯一订单号的方法实现

    前言 前几天写了一篇MySQL高并发生成唯一订单号的方法,有人私信问有没有SQL server版本的,今天中午特地写了SQL server版本的高并发生成唯一订单号实现,其实MySQL和SQL server原理都一样,主要是他们部分语法有些区别,所以你会发现我这篇文章文字说明几乎一样,只有代码和界面不一样. 一.场景再现 在一个erp进销存系统或0A等其他系统中,如果多人同时进行生成订单号的操作的话,容易出现多人获得同一个订单号的情况,对公司业务造成不可挽回的损失 二.如何避免高并发情况订单号不

随机推荐