SQL Server - store procedure reutilizable

   
Vista:

store procedure reutilizable

Publicado por Maria Eugenia Paradas (6 intervenciones) el 17/12/2007 18:12:10
Hola buenos días,

Necesito ayuda respecto a un tema en sqlserver 2005: Tengo varias bases de datos que utilizan el mismo store procedure, en cada una de las bases se debe modificar el nombre de la tabla cada vez que se utiliza, quisiera pasarle el nombre de la tabla por parámetro para utilizar solo uno. Para esto se utilizan 2 tablas 1(la origen) y 2 (la destino); la origen es donde obtengo los datos y la destino donde las guardo siempre y cuando no exista el registro. Aqui esta un ejemplo del procedimiento:

CREATE PROCEDURE mepm_insertar_telfonos_domicilio
AS
BEGIN
DECLARE
@cedula varchar(20),
@cod_area varchar(1),
@numero varchar(10),
@confiabilidad INT

declare cc cursor for
select numafi,substring(telafi,1,1),substring(telafi,2,7),conf_afi from tabla_origen where len(telafi)=8

open cc
select @contador=1 fetch next from cc into @cedula,@cod_area,@numero,@confiabilidad
while (@@fetch_status =0)
BEGIN

if not exists (select 1 from tabla_destino where cedula=@cedula and cod_area=@cod_area and numero=@numero)
begin
insert tabla_origen (cedula,cod_area,numero,idfuente,confiabilidad,tipo,clase)
values(@cedula,@cod_area,@numero,162,@confiabilidad,
case when @cod_area="9" then "CEL"
else "LCL" end,
case when @cod_area="9" then "M"
else "H" end)
end
fetch next from cc into @cedula,@cod_area,@numero,@confiabilidad
END
close cc
deallocate cc
END

-------------------------------------------------------------------------------------------------------------------------------

Ahora, me gustaría saber como elaborar la instruccion del cursor y la del if para poder lograr esto, ya que he intentado varias veces utilizando el exec() con una variable varchar que yo construyo, anexandole los parametros con los nombres de las tablas y no me la reconece.

Les agradeceria mucho su ayuda, Saludos,

Maru
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:store procedure reutilizable

Publicado por Isaias (3308 intervenciones) el 17/12/2007 19:47:48
te hice una pregunta en EMagister, ¿Podrias darme los datos que te pido?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:store procedure reutilizable

Publicado por Maria Eugenia Paradas (6 intervenciones) el 17/12/2007 21:21:28
Hola Isaias,
Gracias por tu pronta respuesta, mi store procedure lo que hace es leer una cedula(numafi), el codigo de area, el resto del número y la una columna confiabilidad de una tabla(origen), a traves de un cursor y en el if pregunta si no existe en la tabla destino esa cedula, codigo de area y numero entonces los inserto en la tabla destino, pero quiero parsarle las 2 tablas por parametro(origen y destino) para no tener q modificar el store procedure cada vez que necesite insertar y solo pasarle esto por parametro, pero nose como utilizar el execute en el if o en la declaración del cursor, ya que me parece que la solución esta en construir la sentencia en una variable varchar y luego ejecutarla con exec() pero nose como sera la sintaxis. Me gustaría que me ayudaras con este tema, porque quizas estoy orientando mal la solución. Gracias
Maria Eugenia
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:store procedure reutilizable

Publicado por Isaias (3308 intervenciones) el 18/12/2007 01:33:14
Maria

Si comprendi que hace tu store, tiene una TABLA FUENTE y una TABLA DESTINO, de cumplirse el NO EXISTE, entonces inserta el registro, tomandolo de la tabla FUENTE hacia la DESTINO.

Mi duda, es ¿PORQUE el uso de CURSORES?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar