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

Concatenar un sprocedure

Estas en el tema de Concatenar un sprocedure en el foro de Bases de Datos General en Foros del Web. Hola necesito concatenar una variable de mi sp que sea parte de la consculta ejemplo. Create proc sp @pam as begin declare @sql varchar(25) @sql=' ...
  #1 (permalink)  
Antiguo 11/01/2010, 16:44
 
Fecha de Ingreso: diciembre-2008
Ubicación: Tumbes - Peru
Mensajes: 18
Antigüedad: 15 años, 11 meses
Puntos: 0
Concatenar un sprocedure

Hola necesito concatenar una variable de mi sp que sea parte de la consculta ejemplo.
Create proc sp
@pam
as
begin
declare @sql varchar(25)
@sql=' and cod_departamento=' + @pam
select *
-- into #pti_matriz_estadistica
from pti_matriz_estadistica
where cod_presupuesto = 2007011 + @sql

pero mi @sql no lo toma como parte de la consulta ya que string como haria para que me lo tome como parte de la consulta ya que lo necesito para hacer if. Haber si son ta buenos porfavor
  #2 (permalink)  
Antiguo 12/01/2010, 09:47
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 19 años, 3 meses
Puntos: 39
Respuesta: Concatenar un sprocedure

Prueba asi:
Código SQL:
Ver original
  1. CREATE proc sp
  2. @pam
  3. AS
  4. BEGIN
  5.  
  6. DECLARE @SQL VARCHAR(25)
  7.  
  8. SET @SQL='and cod_departamento=' + @pam
  9.  
  10. sp_executesql '
  11. select *
  12. -- into #pti_matriz_estadistica
  13. from pti_matriz_estadistica
  14. where cod_presupuesto = 2007011 ' + @SQL
  15.  
  16. END
Por si acaso tenemos un foro especial para SQL Server.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #3 (permalink)  
Antiguo 13/01/2010, 00:26
 
Fecha de Ingreso: diciembre-2008
Ubicación: Tumbes - Peru
Mensajes: 18
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Concatenar un sprocedure

Cita:
Iniciado por flaviovich Ver Mensaje
Prueba asi:
Código SQL:
Ver original
  1. CREATE proc sp
  2. @pam
  3. AS
  4. BEGIN
  5.  
  6. DECLARE @SQL VARCHAR(25)
  7.  
  8. SET @SQL='and cod_departamento=' + @pam
  9.  
  10. sp_executesql '
  11. select *
  12. -- into #pti_matriz_estadistica
  13. from pti_matriz_estadistica
  14. where cod_presupuesto = 2007011 ' + @SQL
  15.  
  16. END
Por si acaso tenemos un foro especial para [URL="http://www.forosdelweb.com/f87"]SQL Server[/URL].

HOLA AMIO GRACIAS POR RESPONDER HIZE LO QUE TU ME ENVIAS Y ME SALIO ERROR Y LO CAMBIE A:

Create proc sp
@pam
as
begin

declare @sql varchar(25)
DECLARE @SQLSTRING NVARCHAR(255)
set @sql='and cod_departamento=' + @pam

SET @SQLSTRING 'select *
into #pti_matriz_estadistica
from pti_matriz_estadistica
where cod_presupuesto = 2007011 ' + @sql

EXEC sp_executesql @SQLSTRING
SELECT * FROM #pti_matriz_estadistica
--CONSULTO A MI TABLA QUE HA SIDO CREADA CON EL INTO
END

AL PARECER LA CONSULTA FUNCIONA PERO ME BOTA ERROR QUE LA TABLA #pti_matriz_estadistica NO EXISTE OSE NO ME LA ESTA CREANDO A QUE CREES QUE SE DEBA QUE NO ME CREA MI TABLA. AGRADECERIA TU RESPUESTA.
GRACIAS
  #4 (permalink)  
Antiguo 13/01/2010, 07:57
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 19 años, 3 meses
Puntos: 39
Respuesta: Concatenar un sprocedure

Prueba asi:
Código SQL:
Ver original
  1. CREATE proc sp
  2. @pam VARCHAR(50)
  3. AS
  4. BEGIN
  5.  
  6. DECLARE @SQL VARCHAR(25),
  7. @SQLSTRING NVARCHAR(255)
  8.  
  9. SET @SQL='and cod_departamento=' + @pam
  10.  
  11. SET @SQLSTRING 'select *
  12. into #pti_matriz_estadistica
  13. from pti_matriz_estadistica
  14. where cod_presupuesto = 2007011 ' + @SQL + '
  15.  
  16. SELECT * FROM #pti_matriz_estadistica'
  17.  
  18. EXEC sp_executesql @SQLSTRING
  19.  
  20. END
Cuando ejecutas un T-SQL dinámico se crea una nueva sesion, y sólo en esa sesion existirá tu tabla temporal, por eso te da error.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.

Etiquetas: concatenar
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

SíEste tema le ha gustado a 2 personas




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