Ver Mensaje Individual
  #2 (permalink)  
Antiguo 06/04/2011, 07:52
Avatar de Libras
Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 9 meses
Puntos: 774
Respuesta: Problema con Stored Procedure

Código SQL:
Ver original
  1. -- =============================================
  2. -- Author: Wlad
  3. -- Create date: 06/04/2011
  4. -- Description: Procedimiento para consultar a un servidor linkeado y obtener datos de una consulta "control de errores".
  5. --Obtiene ID de un expediente por campo de consulta
  6. -- =============================================
  7. --USE SG_ESCANER_SNA
  8.  
  9. ALTER PROCEDURE SpRetornaIdExpediente
  10. AS
  11. BEGIN
  12.  
  13. DECLARE
  14. @VALOR VARCHAR(50),
  15. @SQL VARCHAR(8000),
  16. @finalQuery VARCHAR(8000),
  17. @msg AS VARCHAR(100) OUTPUT
  18.  
  19.     SET NOCOUNT ON;
  20.  
  21.     BEGIN Tran Tadd
  22.  
  23.     BEGIN Try
  24.  
  25. SET @SQL = 'SELECT SEP.ID_EXPEDIENTE
  26. FROM tabla SEP
  27. WHERE SEP.HISTORICO = 1
  28. AND SEP.VALOR = ' + ''''+ '''' + @VALOR+''''+''''
  29.  
  30. SET @finalQuery = 'SELECT * FROM OPENQUERY(SERVERLINKED,' + '''' + @SQL + '''' + ')'
  31.  
  32. EXEC(@finalQuery)
  33.  
  34.         SET @msg = 'Operación realizada correctamente.'
  35.  
  36.         COMMIT TRAN Tadd
  37.  
  38.     END try
  39.     BEGIN Catch
  40.  
  41.         SET @msg = 'Ocurrio un Error: ' + ERROR_MESSAGE() + ' en la línea ' + CONVERT(NVARCHAR(255), ERROR_LINE() ) + '.'
  42.         ROLLBACK TRAN Tadd
  43.  
  44.     END Catch
  45.  
  46. END
  47. GO

Y porque no lo pones asi en vez de poner tus variables como parametros las declaras dentro de tu procedure :)

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me