EXEC sp_addlinkedserver
'Test', --名称
'',
'MSDASQL',
NULL,
NULL,
'DRIVER={SQL Server}SERVER=服务器名UID=saPWD=密码'
GO
-------以上为添加连接服务器
exec sp_addlinkedsrvlogin 'test','false','sa','sa',''
select * from Test.库名.dbo.表名
or
SELECT a.*
FROM OPENROWSET('MSDASQL',
'DRIVER={SQL Server}SERVER=serveUID=saPWD=sa',
db.dbo.table) AS a
SELECT *
FROM OPENQUERY(TEST, 'SELECT name, id FROM db.table')
set XACT_ABORT on
SET ANSI_NULL_DFLT_ON on
建立连接服务器,通过ip和有访问权限就行了
如果在过程里使用连接服务器要加上
SET XACT_ABORT ON
SET ANSI_NULL_DFLT_ON on --注意
SET ANSI_WARNINGS on
跨数据库使用比较简单,如ceshi数据库想使用Finance2014的A表,则使用SELECT * FROM Finance2014.dbo.A跨服务器的使用,相对复杂一些 需要先连接服务器
EXEC sp_addlinkedserver 'srv_lnk','','SQLOLEDB','192.168.2.249'EXEC sp_addlinkedsrvlogin 'srv_lnk','false',null,'sa','12345'
再设置保证存储过程能够使用
EXEC sp_serveroption @server='srv_lnk',@optname='rpc',@optvalue='TRUE'EXEC sp_serveroption @server='srv_lnk',@optname='rpc out',@optvalue='TRUE'
4
再跨服务器调用数据库表和存储过程如:
SELECT * FROM srv_lnk.A.dbo.B 其中A为数据库B为表
EXEC srv_lnk.A.dbo.B 其中A为数据库B为存储过程
windows跨服务器copy找不到网络名可能是服务器的组策略设置导致出现问题了。在windows打开组策略窗口,展开目录,选择用户权利指派选项。
双击“从网络访问此计算机”,在打开的“本地安全策略设置”中添加不能访问自己的用户便可以找到网络名了。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)