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

como ejecutar esta instruccion en un procedimiento almacenado

Estas en el tema de como ejecutar esta instruccion en un procedimiento almacenado en el foro de SQL Server en Foros del Web. Hola lo que pasa es que tengo esta instruccion en un cursor y se lo asigne a una variable asi set @insercion=(select siPeriod ,ID_Entry ,Concept,ID_Class ...
  #1 (permalink)  
Antiguo 26/04/2011, 12:55
 
Fecha de Ingreso: enero-2011
Ubicación: medellin
Mensajes: 194
Antigüedad: 13 años, 10 meses
Puntos: 0
como ejecutar esta instruccion en un procedimiento almacenado

Hola

lo que pasa es que tengo esta instruccion en un cursor y se lo asigne a una variable asi

set @insercion=(select siPeriod ,ID_Entry ,Concept,ID_Class from CGRANJERO_CONTAB.dbo.C01Entry);

pero lo que necesito es ejecutar esa instruccion en un procedimiento almacenado

como lo puedo ejecutar
  #2 (permalink)  
Antiguo 26/04/2011, 13:13
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Respuesta: como ejecutar esta instruccion en un procedimiento almacenado

Para empezar, hemos comentado que los CURSORES no son recomendados en SQL SERVER.

Si vas a hacer un SET a una variable, tendria que ser de tipo CHAR y asignarle el valor como una cadena.

SET @insercion = 'select siPeriod ,ID_Entry ,Concept,ID_Class from CGRANJERO_CONTAB.dbo.C01Entry'
__________________
MCTS Isaias Islas
  #3 (permalink)  
Antiguo 27/04/2011, 07:35
 
Fecha de Ingreso: enero-2011
Ubicación: medellin
Mensajes: 194
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: como ejecutar esta instruccion en un procedimiento almacenado

bueno ya lo hice pero no me da D:
  #4 (permalink)  
Antiguo 27/04/2011, 08:50
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 10 meses
Puntos: 447
Respuesta: como ejecutar esta instruccion en un procedimiento almacenado

Hola elpaisa:

Si lo que quieres es ejecutar la instrucción sql que estás almacenando en la variable @insersion deberás hacer uso del SP sp_executesql, checa esta ligas

http://msdn.microsoft.com/es-es/library/ms188001.aspx
http://www.devjoker.com/contenidos/c...nsact-SQL.aspx

Saludos
Leo.
  #5 (permalink)  
Antiguo 27/04/2011, 09:13
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Respuesta: como ejecutar esta instruccion en un procedimiento almacenado

Bueno, Leo tiene razon, si lo que quieres es EJECUTAR, pues te falta eso, ejecutar la instruccion que esta en tu variable.
__________________
MCTS Isaias Islas
  #6 (permalink)  
Antiguo 27/04/2011, 10:11
 
Fecha de Ingreso: enero-2011
Ubicación: medellin
Mensajes: 194
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: como ejecutar esta instruccion en un procedimiento almacenado

lo puse asi y no da -__-

ALTER PROCEDURE [dbo].[GS_Consolidar_Contabilidad]
@MesConsol Varchar (02)='04',
@DiaConsol_I Varchar(02)='01',
@DiaConsol_F Varchar(02)='29',
@Bodega varchar (5)='01',
@Tipo_Consol varchar (10)='COMPRAS',
@siPeriod smallint = '2011'
AS
EXEC sp_executesql @insercion

Mens 137, Nivel 15, Estado 2, Procedimiento GS_Consolidar_Contabilidad, Línea 9
Debe declarar la variable escalar "@insercion".

y yo se la asigno dentro del cursor asi

set @insercion='select siPeriod ,ID_Entry ,Concept,ID_Class from CGRANJERO_CONTAB.dbo.C01Entry'
  #7 (permalink)  
Antiguo 27/04/2011, 10:47
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 10 meses
Puntos: 447
Respuesta: como ejecutar esta instruccion en un procedimiento almacenado

Hola de nuevo elpaisa:

El error es bastante claro, estás tratando de utilizar una variable que todavía no has declarado. Sinceramente me extraña que no lo pudieras deducir. Compañer@, ya en muchas veces en ese foro hemos dicho lo mismo, pero lo vuelvo a escribir por si no lo sabes: no debes esperar que aquí se te dé una solución que funcione sólo con copiar y pegar, en la mayoría de las veces tendrás que hacer algún tipo de adecuación al código que se ponga para poder adecuarlo a tu escenario real. El foro sirve como una GUÍA, para darte algún tip de lo que tienes que hacer. Si checaste las ligas que te envié, primero tienes que declarar la variable, asignas la sentencia SQL que quieres ejecutar y al final ejecutas.

Código SQL:
Ver original
  1. DECLARE @Insercion nvarchar(150)
  2.  
  3. SET @insercion='select siPeriod ,ID_Entry ,Concept,ID_Class from CGRANJERO_CONTAB.dbo.C01Entry'
  4.  
  5. EXEC sp_executesql @insercion

No termino de entender a qué te refieres cuando dices:

Cita:
y yo se la asigno dentro del cursor asi

set @insercion='select siPeriod ,ID_Entry ,Concept,ID_Class from CGRANJERO_CONTAB.dbo.C01Entry'
Si tu cursor te sirve para armar la sentencia sql de arriba entonces deber ejecutar el SP_Executesql DESPUÉS DEL CURSOR.

Espero que te sirva de algo la ayuda

Saludos
Leo.
  #8 (permalink)  
Antiguo 27/04/2011, 11:01
 
Fecha de Ingreso: enero-2011
Ubicación: medellin
Mensajes: 194
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: como ejecutar esta instruccion en un procedimiento almacenado

Cita:
Iniciado por leonardo_josue Ver Mensaje
Hola de nuevo elpaisa:

El error es bastante claro, estás tratando de utilizar una variable que todavía no has declarado. Sinceramente me extraña que no lo pudieras deducir. Compañer@, ya en muchas veces en ese foro hemos dicho lo mismo, pero lo vuelvo a escribir por si no lo sabes: no debes esperar que aquí se te dé una solución que funcione sólo con copiar y pegar, en la mayoría de las veces tendrás que hacer algún tipo de adecuación al código que se ponga para poder adecuarlo a tu escenario real. El foro sirve como una GUÍA, para darte algún tip de lo que tienes que hacer. Si checaste las ligas que te envié, primero tienes que declarar la variable, asignas la sentencia SQL que quieres ejecutar y al final ejecutas.

Código SQL:
Ver original
  1. DECLARE @Insercion nvarchar(150)
  2.  
  3. SET @insercion='select siPeriod ,ID_Entry ,Concept,ID_Class from CGRANJERO_CONTAB.dbo.C01Entry'
  4.  
  5. EXEC sp_executesql @insercion

No termino de entender a qué te refieres cuando dices:



Si tu cursor te sirve para armar la sentencia sql de arriba entonces deber ejecutar el SP_Executesql DESPUÉS DEL CURSOR.

Espero que te sirva de algo la ayuda

Saludos
Leo.
gracias por responder leonardo

lo que digo yo es que en el cursor armo la sentencia del select es decir tengo un procedimiento con unos parametros lo que hace el cursor es tomar los parametros y los datos de unas tablas y las asigno a un select para poder traer esos datos y enviarlos un aplicativo en C# 2008 entonces lo que necesito es que tomo el cursor le asigno ese select a una variable y necesito traer esa consulta al aplicativo

Etiquetas: instruccion, procedimiento, almacenar
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 06:10.