调用远程数据库的函数

这样子写: SELECT * FROM OPENQUERY([192.168.0.1],'SELECT * FROM [db].dbo.User_Func_List()') 没有问题。


这样子写:

SELECT a.*,b.*

FROM a,OPENQUERY([192.168.0.1],'SELECT * FROM [db].dbo.User_Func_List()') AS b

WHERE a.Id = b.Id

也没有问题。


但OPENQUERY不能传递参数。如果有参数,只能用

    SET @sql = 'SELECT * FROM OPENQUERY([192.168.0.252],''SELECT * FROM [User].dbo.func_GetData(' + @myUserId + ')'')';
    EXEC(@sql);

这种方式。(见如何给OPENQUERY传递参数

原文地址:https://www.cnblogs.com/leftfist/p/4258173.html