在SQL SERVER中,如果我们查询数据库需要关联另外一台数据库中表,在这种情况下我们可以通过添加服务器链接来实现。
案列方式1.sql server 提供了图形化界面,如下:
右键>>New Linked server
填写相关参数即可。
方式2.sql server 语句添加,如下:
--code 释迦苦僧EXEC master.dbo.sp_addlinkedserver @server = N'192.168.1.22', @srvPRoduct=N'SQL Server' EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'192.168.1.22',@useself=N'False',@locallogin=NULL,@rmtuser=N'sa',@rmtpassWord='abcd1234'
查询时语句为:
select * from [192.168.1.22].TestDB.dbo.Table_1
注释:
[@useself =] 'useself' 决定用于连接到远程服务器的登录名称。useself 的数据类型为 varchar(8),默认设置为 TRUE。true 值指定 SQL Server 验证的登录使用其自己的凭据以连接到 rmtsrvname,而忽略 rmtuser 和 rmtpassword 参数。false 值指定 rmtuser 和 rmtpassword 参数用来连接到特定 locallogin 的 rmtsrvname。如果 rmtuser 和 rmtpassword 也设置为 NULL,则连接链接服务器不需使用任何登录或密码。对于 Windows NT 身份验证登录而言,useself 为 true 则无效,除非 Microsoft Windows NT® 环境支持安全帐户委托,并且,提供程序支持 Windows 身份验证(此时不再需要创建值为 true 的映射,不过创建仍然有效)。 [ @locallogin =] 'locallogin' 本地服务器上的登录。locallogin 的数据类型为 sysname,默认设置为 NULL。NULL 值指定此条目将应用于所有连接到 rmtsrvname 的本地登录。如果值不为 NULL,则 locallogin 可以是一个 SQL Server 登录或 Windows NT 用户。必须授予 Windows NT 用户直接访问 SQL Server 或通过其作为已授予访问权限的组的成员来访问 SQL Server 的权限。 不同服务器数据库之间的数据操作
链接Oracle
USE [master]GOEXEC master.dbo.sp_addlinkedserver @server = N'GSPRING', @srvproduct=N'Oracle', @provider=N'MSDAORA', @datasrc=N'gspring'GOUSE [master]GOEXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'GSPRING', @locallogin = N'sa', @useself = N'False', @rmtuser = N'user1', @rmtpassword = N'1'GO
其他:
1、本地配置的所有链接可以在sysservers表中查到:
select * from sys.sysservers;
2、访问远程数据库表时也可以先在本地建一个同义词,然后就可以像在本地一样的访问了:
USE [master]GOCREATE SYNONYM [dbo].[linktable] FOR [DBSERVER].[helpdesk].[dbo].[Messages];GOselect * from linktable;
3.删除linkserver
exec sp_dropserver '10.58.1.69' ,'droplogins'
参考:http://zhidao.baidu.com/link?url=EvgnFGejOO8h61W-WHNKgyyI3w4rp-B9SGBEOG1Ve_zhXL_LnbPJVM124-6PJM87x4EJWzHc0IOWX13po9vzI5jGu5C7C7NXe5ylPBoEK8q
http://www.cnblogs.com/firstyi/archive/2007/08/09/849494.html
作者:释迦苦僧 出处:http://www.cnblogs.com/woxpp/p/3990375.html 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。
新闻热点
疑难解答