sp_execulesql N('select @output=a.result from table1 a,' +@svrName+'.database1.dbo.table2 b where a.field1=b.field1'),
              N('@output smallint output'),
              @output output

解决方案 »

  1.   

    CREATE PROCEDURE test
    @svrName as varchar(100), -----這裡加,號
    @output smallint output
    as 
    begin
        exec sp_execute 'select @output=a.result from table1 a,' +@svrName+'.database1.dbo.table2 b where a.field1=b.field1','@output  smallint out',@output out
    end
      

  2.   

    eg:
    exec sp_addlinkedserver '别名','','MSDASQL',NULL,NULL,'DRIVER={SQL SERVER};SERVER=远程名;UID=用户名;PWD=密码;'
    exec sp_addlinkedsrvlogin @rmtsrvname='别名',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='密码'select * from web.ralph_test.dbo.tablenameexec sp_droplinkedsrvlogin '别名',@locallogin='ralph'
    exec sp_dropserver '别名'
      

  3.   

    CREATE PROCEDURE test
    @svrName as nvarchar(100)
    @output  smallint output
    as 
    begin
        sp_execulesql N('select @output=a.result from table1 a,' +@svrName+'.database1.dbo.table2 b where a.field1=b.field1'),
                      N('@output smallint out'),
                      @output out
    end
      

  4.   

    CREATE PROCEDURE test
    @svrName as nvarchar(100)
    @output  smallint output
    as 
    begin
      exec sp_execulesql N('select @output=a.result from table1 a,' +@svrName+'.database1.dbo.table2 b where a.field1=b.field1'),
                         N('@output smallint out'),
                         @output out
    end