今天,为了提高性能,在两台SQL服务器之间,我把一个SQL语句改为用户自定义函数,返回为TABLE型,然后在另一台服务器调用,结果总是出错,语句及错误信息如下:
select * from [192.168.24.9].manpower.dbo.f_C10CQB1('2008-05-09')
服务器: 消息 170,级别 15,状态 31,行 1
第 2 行: '(' 附近有语法错误。
开始还以为自己的自定义函数写错,因为自定义函数很少写,返回TABLE类型的则是头一次。于是一直改那个函数,改到只剩一两句了,还是出错,然后在函数所在的服务器上运行,却发现是正常的。
原来SQL不支持链接服务器中直接使用用户自定义函数,而是用另一种方法:
select * from Openquery([192.168.24.9],'select * from manpower.dbo.f_C10CQB1(''2008-05-09'')')