Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Mas de una variable en una Query de Stored Procedure

Estas en el tema de Mas de una variable en una Query de Stored Procedure en el foro de SQL Server en Foros del Web. Amigos. Tengo la siguiente Stored Procedure que apunta a un servidor linkeado. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código SQL: Ver original ALTER PROCEDURE SpRetornaIdExpediente   @VALOR1 VARCHAR ( ...
  #1 (permalink)  
Antiguo 06/04/2011, 12:46
 
Fecha de Ingreso: marzo-2008
Ubicación: Chile
Mensajes: 12
Antigüedad: 16 años, 8 meses
Puntos: 0
Pregunta Mas de una variable en una Query de Stored Procedure

Amigos.
Tengo la siguiente Stored Procedure que apunta a un servidor linkeado.

Código SQL:
Ver original
  1. ALTER PROCEDURE SpRetornaIdExpediente
  2.  
  3. @VALOR1 VARCHAR(50)=NULL,
  4. @VALOR2 VARCHAR(4)= NULL,
  5. @SQL VARCHAR(8000)=NULL,
  6. @finalQuery VARCHAR(8000)=NULL,
  7. @msg AS VARCHAR(8000) OUTPUT
  8.  
  9. AS
  10. BEGIN
  11.     SET NOCOUNT ON;
  12.  
  13.     BEGIN Tran Tadd
  14.  
  15.     BEGIN Try
  16.  
  17. SET @SQL = 'SELECT SEP.ID ID_EXPEDIENTE,  SEP.FECHA
  18. FROM TABLA SEP
  19. WHERE SEP.HISTORICO = 0
  20. AND SEP.VALOR1 = ' + ''''+ '''' + @MIC+''''+''''
  21.  
  22. SET @finalQuery = 'SELECT * FROM OPENQUERY(SERVERLINK,' + '''' + @SQL + '''' + ')'
  23.  
  24. EXEC(@finalQuery)
  25.  
  26.         SET @msg = 'Operación realizada correctamente.'
  27.  
  28.         COMMIT TRAN Tadd
  29.  
  30.     END try
  31.     BEGIN Catch
  32.  
  33.     SET @msg = 'Ocurrio un Error: ' + ERROR_MESSAGE() + ' en la línea ' + CONVERT(NVARCHAR(4000), ERROR_LINE() ) + '.'
  34.         ROLLBACK TRAN Tadd
  35.  
  36.     END Catch
  37.  
  38. END
  39. GO

Ahora el cuento es que además de filtrar por un valor (VALOR1) filtre por un segundo valor (VALOR2) que para colmo es el año contenido en una fecha.

Código SQL:
Ver original
  1. SET @SQL = 'SELECT SEP.ID ID_EXPEDIENTE,  SEP.FECHA
  2. FROM TABLA SEP
  3. WHERE SEP.HISTORICO = 0
  4. AND SEP.COMPARACION = ' + ''''+ '''' + @VALOR1+''''+''''
  5. AND TO_CHAR(SEP.FECHA,'YYYY') = ' + ''''+ '''' + @VALOR1+''''+''''

así devería ser pero arroja una enormidad de errores con las condenadas Comillas... Agradeceré toda la ayuda respecto a esto

Un Abrazo.
  #2 (permalink)  
Antiguo 06/04/2011, 13:31
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Mas de una variable en una Query de Stored Procedure

Código SQL:
Ver original
  1. DECLARE @SQL VARCHAR(200)
  2. DECLARE @valor1 AS VARCHAR(200)
  3. DECLARE @valor2 AS VARCHAR(200)
  4.  
  5. SET @valor1='1111111'
  6. SET @valor2='2222222'
  7.  
  8. SET @SQL = 'SELECT SEP.ID ID_EXPEDIENTE,  SEP.FECHA
  9. FROM TABLA SEP
  10. WHERE SEP.HISTORICO = 0
  11. AND SEP.COMPARACION = ' + CHAR(39) +  @VALOR1 + CHAR(39) + '
  12. AND TO_CHAR(SEP.FECHA,''YYYY'') = ' + CHAR(39) + @VALOR1 + CHAR(39) + '
  13. and TO_CHAR(SEP.FECHA2,''YYYY'') = ' + CHAR(39) + @VALOR2 + CHAR(39)
  14. print @SQL

resultado del print

SELECT SEP.ID ID_EXPEDIENTE, SEP.FECHA
FROM TABLA SEP
WHERE SEP.HISTORICO = 0
AND SEP.COMPARACION = '1111111'
AND TO_CHAR(SEP.FECHA,'YYYY') = '1111111'
and TO_CHAR(SEP.FECHA2,'YYYY') = '2222222'


Espero te sirva :)

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

Etiquetas: fecha, stored, stored-procedure
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:38.