ole db提供程序 mysql_无法初始化链接服务器的OLE DB提供程序“MSDASQL”的数据源对象“(空)”...

/* Linked server between local(Client) SQL server and Remote SQL server 2005*/

USE master

GO

-- To use named parameters: Add linked server in the source (Local machine - eg: MachineName or LocalSeverLoginName)

sp_addlinkedserver

@server = N'LnkSrv_RemoteServer_TEST',

@srvproduct=N'', -- Leave it blank when its not 'SQL Server'

@provider=N'SQLNCLI', -- see notes

@datasrc=N'RemoteServerName',

@provstr=N'UID=sa;PWD=sa;'

--,@catalog = N'MYDATABASE' eg: pubs

GO

/*

Note:

To check provider name use the folling query in the destination server

Select Provider From sys.servers

*/

----------------------------------------------------------------------------------------------------------

-- Optional

--EXEC sp_addlinkedsrvlogin 'LnkSrv_RemoteServer_TEST', 'true' -- (self is true) -- for LocalSeverLoginName

--GO

-- Remote login

sp_addlinkedsrvlogin

@rmtsrvname = 'LnkSrv_RemoteServer_TEST',

@useself = 'False',

@rmtuser = 'sa',

@rmtpassword = 'sa'

GO

-- OR

/*

IF the above add linked server login failed then try in the Linked Server (LnkSrv_RemoteServer_TEST) Property

Select -> Security - > 'For a login not defined in the list above, Connection will:'

Choose - > Be made using this security context

SET Remote login: sa

With password: sa

*/

----------------------------------------------------------------------------------------------------------

-- Test server connection

declare @srvr nvarchar(128), @retval int;

set @srvr = 'LnkSrv_RemoteServer_TEST';

begin try

exec @retval = sys.sp_testlinkedserver @srvr;

end try

begin catch

set @retval = sign(@@error);

end catch;

if @retval <> 0

raiserror('Unable to connect to server. This operation will be tried later!', 16, 2);

-- OR

BEGIN TRY

EXEC sp_testlinkedserver N'LnkSrv_RemoteServer_TEST';

END TRY

BEGIN CATCH

PRINT 'Linked Server not available';

RETURN;

END CATCH

----------------------------------------------------------------------------------------------------------

-- Get access linked server database

SET xact_abort ON

GO

BEGIN TRANSACTION

SELECT * FROM LnkSrv_RemoteServer_TEST.DBName.dbo.tblName

COMMIT TRAN

GO

-- OR

SELECT * FROM OPENQUERY(LnkSrv_RemoteServer_TEST, 'SELECT * FROM DBName.dbo.tblName')

GO

-- OR

SELECT * FROM OPENQUERY(LnkSrv_RemoteServer_TEST, 'SELECT * FROM sys.databases Order by name')

GO

----------------------------------------------------------------------------------------------------------

2010-08-06 08:58:02

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值