在远程数据库上执行功能

时间:2014-01-29 07:48:05

标签: sql-server exec linked-server sp-executesql

我想获得在 UNKNOWN 远程数据库上执行的函数的结果。

服务器名称和数据库名称仅在运行时提供。

我试过这个,但它不起作用:

DECLARE @result table (result BIT)

INSERT INTO @result
EXEC (N'SELECT [linkedserver].[remotedb].dbo.myudf(''myparameter'')')

SELECT * FROM @result

1 个答案:

答案 0 :(得分:1)

开启链接服务器上的RPC -

EXEC [master].dbo.sp_serveroption @server=N'linked_server', @optname=N'rpc out', @optvalue=N'true'

试试这个 -

EXEC ('SELECT * 
FROM AdventureWorks2012.sys.fn_helpcollations()') AT [linked_server]

或者这个(更可取的) -

EXEC [linked_server].AdventureWorks2012.sys.sp_executesql N'SELECT DB_NAME()'