Concatenación en procedimiento almacenado con parámetros.

06/01/2004 - 14:42 por sebawwf | Informe spam
Hola, estoy en la creación de un procedimiento. Esta debe crear una
tabla, donde su nombre tiene referencia a datos ingresados por
parámetros.
Si pueden ayudarme lo agradecería mucho.

Create Procedure Crea_Agrup
@ciclo int,
@fecha int
as
Create table Cuadratura_+@ciclo+_+@fecha+_AgrupPS
(COD_PS varchar(255), VALOR decimal(18))
...
...

Aquí adjunto parte del procedimiento, pero me lanza errores por la
concatenación.

Gracias

Preguntas similare

Leer las respuestas

#1 Maximiliano Damian Accotto
06/01/2004 - 14:53 | Informe spam
amigo,

si quieres hacer eso no te quedara otro remedio que recurrir a los
SqlDinamicos

vemos un ej si?

create proc creamos_tablas @nombre varchar(100) as

declare @string nvarchar(4000)

set @string = N'Create table ' + @nombre + ' (id int)'

exec (@string)

go

exec creamos_tablas 'maxi123'


Salu2 y espero te sea util
Maximiliano Damian Accotto


"Sebastián Rilly" escribió en el mensaje
news:
Hola, estoy en la creación de un procedimiento. Esta debe crear una
tabla, donde su nombre tiene referencia a datos ingresados por
parámetros.
Si pueden ayudarme lo agradecería mucho.

Create Procedure Crea_Agrup
@ciclo int,
@fecha int
as
Create table Cuadratura_+@ciclo+_+@fecha+_AgrupPS
(COD_PS varchar(255), VALOR decimal(18))
...
...

Aquí adjunto parte del procedimiento, pero me lanza errores por la
concatenación.

Gracias
Respuesta Responder a este mensaje
#2 Isaías
06/01/2004 - 15:33 | Informe spam
Hola Max

Si me lo permites, yo solo recomendaria el uso del store
sp_executesql, en lugar del EXEC()

Saludos.
Respuesta Responder a este mensaje
#3 Maximiliano Damian Accotto
06/01/2004 - 15:42 | Informe spam
como no estimado Isaias, seria lo ideal no? sabes que pasa: yo Sqldinamico
le escapo mucho de verdad y el Exec es solo una MALA costumbre que tengo de
hacerlo (Debo machacarme hasta cambiar jeje)

veamos entonces como quedaria no?

create proc creamos_tablas @nombre varchar(100) as

declare @string nvarchar(4000)

set @string = N'Create table ' + @nombre + ' (id int)'

exec sp_executesql @string

go

exec creamos_tablas 'maxi123'

Salu2.

Maximiliano Damian Accotto


"Isaías" escribió en el mensaje
news:09eb01c3d462$1f935a60$
Hola Max

Si me lo permites, yo solo recomendaria el uso del store
sp_executesql, en lugar del EXEC()

Saludos.
Respuesta Responder a este mensaje
#4 sebawwf
06/01/2004 - 21:01 | Informe spam
Excelente, todo funcionó a la perfección. Muy agradecido!

"Maximiliano Damian Accotto" <maxi_accotto[arroba]speedy.com.ar.SACAME> wrote in message news:...
amigo,

si quieres hacer eso no te quedara otro remedio que recurrir a los
SqlDinamicos

vemos un ej si?

create proc creamos_tablas @nombre varchar(100) as

declare @string nvarchar(4000)

set @string = N'Create table ' + @nombre + ' (id int)'

exec (@string)

go

exec creamos_tablas 'maxi123'


Salu2 y espero te sea util
Maximiliano Damian Accotto


"Sebastián Rilly" escribió en el mensaje
news:
> Hola, estoy en la creación de un procedimiento. Esta debe crear una
> tabla, donde su nombre tiene referencia a datos ingresados por
> parámetros.
> Si pueden ayudarme lo agradecería mucho.
>
> Create Procedure Crea_Agrup
> @ciclo int,
> @fecha int
> as
> Create table Cuadratura_+@ciclo+_+@fecha+_AgrupPS
> (COD_PS varchar(255), VALOR decimal(18))
> ...
> ...
>
> Aquí adjunto parte del procedimiento, pero me lanza errores por la
> concatenación.
>
> Gracias
Respuesta Responder a este mensaje
#5 Maximiliano Damian Accotto
06/01/2004 - 21:09 | Informe spam
;-), pero use sp_executesql en lugar de Exec, esta ultima es una mala mania
mia :-(

Salu2
Maximiliano Damian Accotto


"Sebasti?n Rilly" escribió en el mensaje
news:
Excelente, todo funcionó a la perfección. Muy agradecido!

"Maximiliano Damian Accotto" <maxi_accotto[arroba]speedy.com.ar.SACAME>


wrote in message news:...
> amigo,
>
> si quieres hacer eso no te quedara otro remedio que recurrir a los
> SqlDinamicos
>
> vemos un ej si?
>
> create proc creamos_tablas @nombre varchar(100) as
>
> declare @string nvarchar(4000)
>
> set @string = N'Create table ' + @nombre + ' (id int)'
>
> exec (@string)
>
> go
>
> exec creamos_tablas 'maxi123'
>
>
> Salu2 y espero te sea util
> Maximiliano Damian Accotto
>
>
> "Sebastián Rilly" escribió en el mensaje
> news:
> > Hola, estoy en la creación de un procedimiento. Esta debe crear una
> > tabla, donde su nombre tiene referencia a datos ingresados por
> > parámetros.
> > Si pueden ayudarme lo agradecería mucho.
> >
> > Create Procedure Crea_Agrup
> > @ciclo int,
> > @fecha int
> > as
> > Create table Cuadratura_+@ciclo+_+@fecha+_AgrupPS
> > (COD_PS varchar(255), VALOR decimal(18))
> > ...
> > ...
> >
> > Aquí adjunto parte del procedimiento, pero me lanza errores por la
> > concatenación.
> >
> > Gracias
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida