Parametrizar nombre tabla

09/01/2004 - 16:47 por Mario Barro | Informe spam
Hola a todos/as;

Es posible parametrizar el nombre de una tabla en un procedimiento
almacenado.
Es decir, hay muchas tablas con distinto nombre pero que tienen los mismos
campos y los correspondientes procedimientos para insertar datos.

El caso es que en cada procedimiento almacenado de insercción sólo cambia el
nombre de la tabla.
Se podría (o cómo) hacer algo como esto.

CREATE PROCEDURE pa_Insert_A
@Campo nchar(50),
@NameTable nchar(20)
AS
INSERT INTO @NameTable (Campo) VALUES (@NameTable)
GO


Es decir, pasar de alguna manera el nombre de la tabla de inserción.
¿Cómo se podría afrontar este tipo de cuestión?

Saludos
Mario Barro
 

Leer las respuestas

#1 Maximiliano Damian Accotto
09/01/2004 - 16:55 | Informe spam
Hola Mario

para hacer lo que vos decis deberias usar algo que se llama SqlDinamico

Veamos un ej si?

create table prueba45 (num int)

go

create proc insertar @tabla nchar(100) as

declare @str nvarchar(4000)

set @str = N'Insert into ' + @tabla + ' select 1 '

EXEC sp_executesql @str

go

exec insertar 'prueba45'

salu2

Maximiliano Damian Accotto

"Mario Barro" escribió en el mensaje
news:
Hola a todos/as;

Es posible parametrizar el nombre de una tabla en un procedimiento
almacenado.
Es decir, hay muchas tablas con distinto nombre pero que tienen los mismos
campos y los correspondientes procedimientos para insertar datos.

El caso es que en cada procedimiento almacenado de insercción sólo cambia


el
nombre de la tabla.
Se podría (o cómo) hacer algo como esto.

CREATE PROCEDURE pa_Insert_A
@Campo nchar(50),
@NameTable nchar(20)
AS
INSERT INTO @NameTable (Campo) VALUES (@NameTable)
GO


Es decir, pasar de alguna manera el nombre de la tabla de inserción.
¿Cómo se podría afrontar este tipo de cuestión?

Saludos
Mario Barro


Preguntas similares