函数调用问题,请高手解答,分数多多

emayongxiang 2003-05-15 03:58:28
如何调用链接服务器的函数

select * from [dbs2].PostBase.dbo.fnCountWorkload('','','2003-4-1','2003-5-1')

提示
服务器: 消息 170,级别 15,状态 31,行 1
第 2 行: '(' 附近有语法错误。

在本地服务器上调用函数没有问题
...全文
78 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
emayongxiang 2003-05-27
  • 打赏
  • 举报
回复
我试成功的

declare
@变量1 nvarchar(50)
,@变量2 nvarchar(50)
set @变量1='2003-4-1'
set @变量2='2003-5-1'


exec('select * from OPENQUERY(dbs2,''select * from postbase.dbo.fncountworkload('''''''','''''''','''''+@变量1+''''','''''+@变量2+''''')'')')
erigido 2003-05-22
  • 打赏
  • 举报
回复
好多分呀?!可惜只能看不能拿呀!!!!
郁闷.呵呵~~~~
xlhl 2003-05-22
  • 打赏
  • 举报
回复
study
pengdali 2003-05-22
  • 打赏
  • 举报
回复
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))+''''')')
pengdali 2003-05-22
  • 打赏
  • 举报
回复
select * from OPENQUERY(dbs2,'select * from postbase.dbo.fncountworkload('''','''',''20030401'',''20030501'')')
leimin 2003-05-22
  • 打赏
  • 举报
回复
you try:
select * from OPENQUERY(dbs2,'select * from postbase.dbo.fncountworkload("","","20030401","20030501")')
emayongxiang 2003-05-22
  • 打赏
  • 举报
回复
注释
OPENQUERY 不接受参数变量。

fnCountWorkload
(@nvcBranchNo nvarchar(5) --局所编号(可空)
,@nvcWorkNumber nvarchar(6) --营业员工号(可空)
,@sdBeginDate smalldatetime --开始时间
,@sdEndDate smalldatetime --结束时间
)


select * from OPENQUERY(dbs2,'select * from postbase.dbo.fncountworkload('','','20030401','20030501')')
leimin 2003-05-15
  • 打赏
  • 举报
回复
SELECT *
FROM OPENQUERY(auchan, 'master.dbo.sp_help')
------------------------^^^^^^^^^^^^^^^^^^^^ MUST BE FULL NAME!!
leimin 2003-05-15
  • 打赏
  • 举报
回复
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'


stone100 2003-05-15
  • 打赏
  • 举报
回复
我也想知道。请高手帮忙。
愉快的登山者 2003-05-15
  • 打赏
  • 举报
回复
先进行服务器连接,然后调用。
emayongxiang 2003-05-15
  • 打赏
  • 举报
回复
我有2000分,如有解答分数多多!!!

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧