Sql 在传入参数、获取返回值并捕获

Sql 在传入参数、获取返回值并捕获,sql,sql-server,tsql,stored-procedures,Sql,Sql Server,Tsql,Stored Procedures,这就是我到目前为止所做的: DECLARE @localParam as int = 123 DECLARE @localReturnValue int DECLARE @localerrornumber int EXEC (' DECLARE @return_value int BEGIN TRY EXEC @remoteReturnValue = [Database].[Proc] @param = @localParam EN

这就是我到目前为止所做的:

DECLARE @localParam as int = 123
DECLARE @localReturnValue int
DECLARE @localerrornumber int

EXEC ('
    DECLARE @return_value int
    BEGIN TRY
    EXEC    @remoteReturnValue = [Database].[Proc]
            @param = @localParam
    END TRY
    BEGIN CATCH
        print ERROR_NUMBER()
    END CATCH
') AT [LINKEDSERVERNAME]
我想将@localParam传递给远程过程,设置@localReturnValue=@remoteReturnValue和@localerrornumber=ERROR\u NUMBER


当[LINKEDSERVERNAME].[Database].[Proc]引发错误时,错误号始终小于20,因此我无法从自己的服务器上正常尝试/捕获它

不知道返回值或错误处理,但要传递本地参数,我认为需要使用动态sql连接,我无法将其放入注释中,因为它将包含多个@符号。请使用sp_executesql来处理您的输入/输出要求签名我之前的注释,它将无法工作。服务器上的EXEC@SQL、@InputVar、@OutputVar OUTPUT之类的东西应该是。