本地sqlserver数据库触发器直接调用远程存储过程
(2018-01-30 14:24:24)
标签:
it |
分类: MY-SQLServer |
参考地址:http://blog.csdn.net/yuemingfuyueming/article/details/73481397
if not exists(select
1
from sys.servers
where name='DBVIP')
begin
EXEC sp_addlinkedserver @server='DBVIP',--被访问的服务器别名(任意的名称)
@srvproduct='',
@provider='SQLOLEDB',
@datasrc='127.0.0.1'
--要访问的服务器(SQL
SERVER实例名)
EXEC sp_addlinkedsrvlogin
'DBVIP', --被访问的服务器别名
'false',
NULL,
'sa', --登陆链接服务器的帐号
'123' --登陆链接服务器的密码
end
go --(go的作用)将语句分开执行,否则会报错
--查看已注册的链接服务器
exec sp_linkedservers --查询链接服务器上的表
select *
from DBVIP.database_name.dbo.table_name
go --DBVIP.database_name.dbo.table_name
远程服务器完整表名(必须用4部分表示)
--用完后可删除
if
exists(select
1
from sys.servers
where name='DBVIP')
begin
Exec sp_droplinkedsrvlogin DBVIP,NULL
--删除链接服务器的登陆帐户
Exec sp_dropserver DBVIP --删除链接服务器
end
go --查看已注册的链接服务器
exec sp_linkedservers
------------------------测试----------------------------------------------------------
if not exists(select 1 from sys.servers where
name='ITSV')
exec sp_addlinkedserver 'ITSV', ' ',
'SQLOLEDB', '10.10.11.250 '
exec sp_addlinkedsrvlogin 'ITSV', 'false
',null, 'sa', 'strongs'
exec sp_serveroption @server='ITSV' , @optname= 'rpc',
@optvalue ='TRUE'
exec sp_serveroption @server='ITSV' , @optname= 'rpc out',
@optvalue='TRUE'
if exists(select 1 from sys.servers where name='ITSV')
Exec sp_droplinkedsrvlogin ITSV,NULL --删除链接服务器的登陆帐户
Exec sp_dropserver ITSV --删除链接服务器
USE [pacsmy]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER trigger [dbo].[tests] on [dbo].[aaa1]
for insert
as
begin
declare @tests varchar(10);
set @tests=(select number from inserted);
exec ITSV.pacs_djk.dbo.test @tests
end
select * from sys.servers where name='ITSV'