Ver Mensaje Individual
  #2  
Antiguo 07-02-2006
Avatar de Xianto
Xianto Xianto is offline
Miembro
 
Registrado: oct 2004
Ubicación: Nací en Neuquén (ARG), desde 2001 Spain
Posts: 151
Reputación: 20
Xianto Va por buen camino
Puedes pasar un parametro como si fuera un string (varchar)... Lo que pasa es que el procedimiento que reciba este dato tendrá que tener un exec para ejecutar la acción...

Ejemplificando:

Paso un parametro que es un varchar(20)

Código SQL [-]
declare @sql varchar (1000)
set @sql='pepe '+char(34)+@nombre_tabla+char(34)
exec (@sql)

La instrucción de arriba, llamará al siguiente procedimiento...

Código SQL [-]
Create procedure pepe
@tabla varchar(20)
As
 
declare @sql varchar (1000)
set @sql='insert into '+@tabla+' campo1, campo2, campo3'
set @sql=@sql + ' values valor1, '+@numero+', '+char(34)+getdate()+char(34)
 
exec (@sql)
GO

Personalmente no me gusta anidar procedimientos... porque si anidas procedimientos muy complejos, tendras que tener un par de super-procesadores.

Porque?

Cuando haces un procedimiento, al ejecutarse por primera vez, el motor MsSql compilará este procedimiento... Cosa que tambien sucede con el método EXECUTE (EXEC), indistintamente se ejecute 1 vez ó 1000, siempre lo compilará !

Saludos !
__________________
El diseño dira si tiene futuro...
Responder Con Cita