declare @变量1 int,@变量2 int
select @变量1='20030401',@变量2='20030501'
exec('select * from OPENQUERY(dbs2,''select * from postbase.dbo.fncountworkload('''''''','''''''','''''+cast(@变量1 as varchar(10))+''''','''''+cast(@变量2 as varchar(10))+''''')')
below is a example,call remote udf is same with stored procedure!
attention:
1.sp_addlinkedserver @provider must supports RPC like "SQLOLEDB"
2.run remote sp must use OPENQUERY()
EXEC sp_addlinkedserver 'auchan','','SQLOLEDB',NULL,NULL,'DRIVER={SQL Server};SERVER=auchan;UID=sa;PWD=admin;'
go
exec sp_addlinkedsrvlogin @rmtsrvname='auchan',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='admin'
GO
/*insert into sales (stor_id,ord_num,ord_date,qty,payterms,title_id)
select stor_id,ord_num,ord_date,qty,payterms,title_id from auchan.pubs.dbo.sales
*/
SELECT *
FROM OPENQUERY(auchan, 'master.dbo.sp_help')
go
EXEC sp_droplinkedsrvlogin @rmtsrvname = 'auchan', @locallogin = 'sa'
EXEC sp_dropserver @server = 'auchan'