用sp_addlinkedserver建立链接服务器

--在SQL SERVER 2008里,可以按以下的方式建立链接服务器
EXEC   sp_addlinkedserver
          @server= 'Test' , --这里是给链接服务器取的别名,想取什么名就取什么
@srvproduct= '' ,
@provider= 'SQLOLEDB' ,
@datasrc= '10.3.20.95\sqlexpress'
--这里的datasrc是要链接的数据库的实例的地址(就是数据库连接字符串里的server,比如本机就是.或者local,或者目标数据库实例的IP(可以加端口))

  --如果不是同一台机器的话,还要执行以下语句来设置sa登录映射 

   EXEC  sp_addlinkedsrvlogin 'Test','false',NULL,'sa','123456'

--链接服务器建立上了之后,就可以按以下的方式来操作了,就跟操作本地数据库一样了

   select * from test.testdb.dbo.userinfo

  --为链接服务器里的表创建同义词

  --以下这条命令在tempdb中为链接服务器Test中的TestDB中的dbo.UserInfo表创建了一个同义词dbo.UserInfo

   USE [tempdb] GO

  /****** Object:  Synonym [dbo].[TestDB]    Script Date: 07/15/2011 10:20:15 ******/

  CREATE SYNONYM [dbo].UserInfo FOR [Test].[TestDB].   [dbo].UserInfo GO

  select * from dbo.userinfo  --就像操作当前实例的表一样操作链接=服务器上的表

  --建立链接服务器并创建同义词,有一个最大的好处,就是可以跨数据库实例进行操作数据库,可以在一个数据库连接内完成数据操作,方便做事务查询。

 --以下两条命令是来删除链接服务器的

    Exec sp_droplinkedsrvlogin Test,Null

    Exec sp_dropserver Test

在 SQL Server 环境中,`sys.servers` 表通常用于存储已连接的数据库服务器的信息,包括服务器名、登录账户等。如果你遇到提示说找不到特定的服务器 `8.137.13.136`,这可能是以下几个原因: 1. **拼写错误**:确认输入的服务器名称 `8.137.13.136` 是否完全正确,特别是大小写敏感的部分。 2. **服务器未连接**:这个地址可能表示的是一个尚未通过 `sp_addlinkedserver` 存储过程链接到当前系统的物理服务器。你需要通过管理员权限运行该存储过程来建立链接。 3. **权限限制**:检查当前用户是否有足够的权限去查看或管理其他服务器。 4. **系统更新或配置更改**:如果服务器已经从系统中移除或者网络配置有变,可能会导致查询不到。 针对这个问题,你可以尝试以下操作: 1. 使用 `sp_helpsrvr '8.137.13.136'` 来直接验证服务器是否存在。 2. 如果不存在,执行 `sp_addlinkedserver` 存储过程,传入服务器的名称、提供者(如 OLE DB 或者 SQL Server Native Client)、数据库名称和其他必要的连接信息。 3. 执行完存储过程后,再次查询 `sys.servers`,看新添加的服务器是否已列出。 ```sql EXEC sp_addlinkedserver 'MyServer', @srvproduct = 'SQL Server', @provider = 'SQLNCLI', @datasrc = '8.137.13.136,mydatabase'; ``` 其中,`@srvproduct` 是你想链接服务器类型,`@provider` 是数据源使用的连接提供者,`@datasrc` 包含了服务器地址和数据库名。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值