SQL Server跨库访问
方法一:
使用openrowset:
select * from openrowset( 'SQLOLEDB ', ‘服务器IP’; ‘用户名’; ‘密码’,数据库名.dbo.表名)
*****报错:SQL Server 阻止了对组件 ‘Ad Hoc Distributed Queries’
*****解决方法:
启用Ad Hoc Distributed Queries:
exec sp_configure ‘show advanced options’,1
reconfigure
exec sp_configure ‘Ad Hoc Distributed Queries’,1
reconfigure
使用完成后,关闭Ad Hoc Distributed Queries:
exec sp_configure ‘Ad Hoc Distributed Queries’,0
reconfigure
exec sp_configure ‘show advanced options’,0
reconfigure
方法二:
创建链接服务器:
EXEC master.dbo.sp_addlinkedserver @server = N’Server_Query’, @srvproduct=N’Server_Query’, @provider=N’SQLNCLI’, @datasrc=N’服务器IP’
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N’Server_Query’,@useself=N’False’,@locallogin=NULL,@rmtuser=N’用户名’,@rmtpassword=‘密码’
GO
EXEC master.dbo.sp_serveroption @server=N’Server_Query’, @optname=N’collation compatible’, @optvalue=N’false’
GO
EXEC master.dbo.sp_serveroption @server=N’Server_Query’, @optname=N’data access’, @optvalue=N’true’
GO
EXEC master.dbo.sp_serveroption @server=N’Server_Query’, @optname=N’dist’, @optvalue=N’false’
GO
EXEC master.dbo.sp_serveroption @server=N’Server_Query’, @optname=N’pub’, @optvalue=N’false’
GO
EXEC master.dbo.sp_serveroption @server=N’Server_Query’, @optname=N’rpc’, @optvalue=N’false’
GO
EXEC master.dbo.sp_serveroption @server=N’Server_Query’, @optname=N’rpc out’, @optvalue=N’false’
GO
EXEC master.dbo.sp_serveroption @server=N’Server_Query’, @optname=N’sub’, @optvalue=N’false’
GO
EXEC master.dbo.sp_serveroption @server=N’Server_Query’, @optname=N’connect timeout’, @optvalue=N’0’
GO
EXEC master.dbo.sp_serveroption @server=N’Server_Query’, @optname=N’collation name’, @optvalue=null
GO
EXEC master.dbo.sp_serveroption @server=N’Server_Query’, @optname=N’lazy schema validation’, @optvalue=N’false’
GO
EXEC master.dbo.sp_serveroption @server=N’Server_Query’, @optname=N’query timeout’, @optvalue=N’0’
GO
EXEC master.dbo.sp_serveroption @server=N’Server_Query’, @optname=N’use remote collation’, @optvalue=N’true’
GO
EXEC master.dbo.sp_serveroption @server=N’Server_Query’, @optname=N’remote proc transaction promotion’, @optvalue=N’true’
GO