NOTE 4----linkserver的创建

来源:互联网 发布:手机棋牌麻将软件 编辑:程序博客网 时间:2024/05/24 06:41

linkserver的就是oracle里的dblink,之上可以创建视图等,访问其他库下的对象,其他库可以是sqlserver不同版本,oracle等

"与链接服务器的测试连接失败"

未将服务器 'YLC-2' 配置为用于 DATA ACCESS。 (Microsoft SQL Server,错误: 7411)

/****** 对象:  LinkedServer [YLC-2]    脚本日期: 05/05/2014 10:54:24 ******/

EXEC master.dbo.sp_addlinkedserver @server = N'YLC-2', @srvproduct=N'SQL Server'
 /* For security reasons the linked server remote logins password is changed with ######## */
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'YLC-2',@useself=N'True',@locallogin=NULL,@rmtuser=NULL,@rmtpassword=NULL
GO
EXEC master.dbo.sp_serveroption @server=N'YLC-2', @optname=N'collation compatible', @optvalue=N'false'
GO

--- EXEC master.dbo.sp_serveroption @server=N'YLC-2', @optname=N'data access', @optvalue=N'false'

EXEC master.dbo.sp_serveroption @server=N'YLC-2', @optname=N'data access', @optvalue=N'true'

GO
EXEC master.dbo.sp_serveroption @server=N'YLC-2', @optname=N'dist', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'YLC-2', @optname=N'pub', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'YLC-2', @optname=N'rpc', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'YLC-2', @optname=N'rpc out', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'YLC-2', @optname=N'sub', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'YLC-2', @optname=N'connect timeout', @optvalue=N'0'
GO
EXEC master.dbo.sp_serveroption @server=N'YLC-2', @optname=N'collation name', @optvalue=null
GO
EXEC master.dbo.sp_serveroption @server=N'YLC-2', @optname=N'lazy schema validation', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'YLC-2', @optname=N'query timeout', @optvalue=N'0'
GO

EXEC master.dbo.sp_serveroption @server=N'YLC-2', @optname=N'use remote collation', @optvalue=N'true'

SQL Server提供了两种方式连接Link Server:

select * from OPENQUERY([YLC-2],'SELECT * FROM msdb.sys.sysobjects')
--SELECT * FROM [YLC-2]..msdb.sys.sysobjects

注意:

1)第二种方式需注意大小写

2)第二种方式没有第一种那样强大,第二种往往用在指明连接的用户

SELECT * FROM [YLC-2]..msdb.sys.sysobjects就会报错 对象 名称 'YLC-2..msdb.sys.sysobjects' 包含的前缀超出了最大限值。最多只能有 3 个。

第一种是完全可以的

3)两种方式都不能使用索引,不支持大批量数据的使用


0 0