使用联结服务器:
EXEC sp_addlinkedserver '别名','','MSDASQL',NULL,NULL,'DRIVER={SQL Server};SERVER=远程名;UID=用户;PWD=密码;'
exec sp_addlinkedsrvlogin  @rmtsrvname='别名',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='密码'
GO然后你尝试:select 别名.库名.dbo.函数名('参数')

解决方案 »

  1.   

    权限有吗?是sa吗?Select * From OpenQuery(别名,'select dbo.函数名() as test')
      

  2.   

    我没有用sp_addlinkedserver;
    我直接在Enterprise Manager里的 Security ---- Linked Servers  新增了一个服务器连接。
    不知这样做可否呢?Select * From OpenQuery(SS1,'select  data1.dbo.FS_mlb_lab_01('P011011085') as test')'SS1'是服务器别名而已,数据库名为'data1'执行后有如下错误信息:Server: Msg 170, Level 15, State 1, Line 1
    Line 1: Incorrect syntax near 'P011011085'.
      

  3.   

    --Add linked server 
    EXEC sp_addlinkedserver 
       'linkedserver', 
       '', 
       'SQLOLEDB',
       '10.167.37.154',
       NULL,
       NULL
    GO--Add linked server login
    sp_addlinkedsrvlogin  @rmtsrvname =  'linkedserver'
         ,  @useself =  'false'
         ,  @locallogin =  'sa'
         ,  @rmtuser =  'sa'
         ,  @rmtpassword =  'admin'
    GO
    SELECT * FROM openquery(linkedserver,'exec sp_who')