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

创建同义词步骤如下:

不同服务器跨库访问实现

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

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

时间: 2024-10-05 22:41:03

SQL Server跨库跨服务器访问实现的相关文章

sql server中使用链接服务器访问oracle数据库

一.  安装配置oracle客户端 要访问orcale数据,必须在访问的客户端机器上安装oracle客户端. Orcale有两种形式的客户端: l         完整的客户端 包括访问服务器端数据库的基本Oracle 的 Microsoft OLE DB 访问接口需要 Oracle Client Software Support File以及 SQL*Net .还包括用于配置客户端设置的工具.sqlplus.企业管理器等一系列的工具. l         立即客户端(instant clien

SQL Server 中的跨库视图

SQL Server 中的跨库视图 在一个SQL中,有多个数据库,A.B.C,在使用C为连接库中,现在要查询A中的表T1. 那么,在C中建创视图(A_T1). SELECT *FROM A.dbo.T1 这样就当本地表使用了.

跨多个服务器访问不同数据库的表的方法

/*跨多个服务器访问不同的表的方法一 *先创建链接服务器TESTT, *在MSSQL2008下不能直接修改链接服务器 'TESTT' 的RPC配置成TURE,可以通过语句修改如下: */ USE [master] GO EXEC master.dbo.sp_serveroption @server=N'TESTT', @optname=N'rpc', @optvalue=N'true' GO EXEC master.dbo.sp_serveroption @server=N'TESTT', @o

64位sql server 如何使用链接服务器连接Access

原文:64位sql server 如何使用链接服务器连接Access 测试环境 操作系统版本:Windows Server 2008 r2 64位 数据库版本:Sql Server 2005 64位 网上的许多教程都介绍了如何使用链接服务器连接Access,但这些教程都是基于32位的sql server而言的. 参见经典教程:<SQL Server2005连接Excel.Access> 教程中提到了“访问接口”要选择“Microsoft.Jet.OLEDB.4.0”.但是由于windows s

【转】SQL Server -- 已成功与服务器建立连接,但是在登录过程中发生错误

SQL Server -- 已成功与服务器建立连接,但是在登录过程中发生错误 最近在VS2013上连接远程数据库时,突然连接不上,在跑MSTest下跑的时候,QTAgent32 crash.换成IIS下运行的时候,IIS crash.之前的连接是没问题的,后网上找了资料,根据牛人所说的方案解决了. 1. Exception message 已成功与服务器建立连接,但是在登录过程中发生错误. (provider: SSL Provider, error: 0 - 接收到的消息异常,或格式不正确.)

实现Sql server数据库的远程连接访问

在同一网络环境下,或者在可以访问的IP地址下,我们利用SQL数据库实现远程连接访问可以使用如下方法: 通过调用master.sys.sp_addlinkedserver创建访问连接 EXEC master.sys.sp_addlinkedserver @server = NULL, -- sysname     @srvproduct = N'', -- nvarchar(128)     @provider = N'', -- nvarchar(128)     @datasrc = N'',

SQL Server不能通过外部IP访问,解决方法

SQL Server不能通过外部IP访问,解决方法 版本:SQL server 2017 express with tools 打开配置管理器,开启 TCP,右键属性设置TCP端口: 设置节点: IP1 外部IP/服务器内网IP,比如我的用了192.168.3.101,若要外部访问则一定要用外网IP,并设置端口为1433 IP4 127.0.0.1,并设置端口为1433 IPALL,设置端口为1433 以下为截图: PS:另外配置更改保存后,一定要重启数据库服务器. 原文地址:https://w

SQL Server建库-建表-建约束

----------------------------------------SQL Server建库-建表-建约束创建School数据库-------------------------------------- --创建School数据库之前:首先判断数据库是否存在,若存在则删除后再创建,若不存在则创建----exists关键字:括号里边能查询到数据则返回‘true’ 否则返回‘false’if exists(select * from sysdatabases where name =

SQL Server之间建立链接服务器

打开SSMS,服务器对象--链接服务器,右键"新建链接服务器",常规选项,输入链接服务器名称或IP地址,服务器类型选择SQL Server 在安全性选项,选择下面的选项,输入账号和密码,然后点确定即可. 在SSMS中,服务器对象--链接服务器,就会出现刚刚你建立的链接服务器名称. 假设刚刚建立的链接服务器名称为192.168.10.10 测试: select top 10 * from "192.168.10.10".test.dbo.test 即可查看test数据

SQL Server Replication的分发服务器的快照文件夹位置查找

原文:SQL Server Replication的分发服务器的快照文件夹位置查找 SQL Server分发服务器配置中,需要配置快照文件夹(Snapshot Folder),用于存储发布的数据和架构文件的工作目录,那么如何查找当前SQL Server数据库服务器的分发服务器的快照文件夹位置呢? 如果配置了具体发的发布和订阅,那么可以在对应的发布的属性->快照文件里面查看,如果还没有配置具体的发布和订阅,这个需要怎么查看呢? 今天恰巧遇到了这样的问题,研究了一下,其实这些值保存在表msdb.db