Store Procedure Reutilizable

tema enviado por Maru en SQL Server
tema iniciado el 17/12/2007

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