SPD dinamico

12/05/2006 - 12:38 por Alicia | Informe spam
Quiero hacer un procedimiento almacenado de eliminacion dinámico, que
elimine en una tabla diferente dependiendo de un parametro pero me dice que
debo declarar la variable. Este es mi codigo

CREATE PROCEDURE [SPD_SubCuentas_1]
(@IdSubCuenta_1 [int],
@CodEmpresa_2 varchar(4))

AS

Declare @Tabla as nvarchar(4)
Set @Tabla = @CodEmpresa_2 + 'SubCuentasSaldos'

DELETE [@Tabla]
WHERE ([IdSubCuenta] = @IdSubCuenta_1))

La tabla sobre la que quiero eliminar cambia dependiendo del parametro
@CodEmpresa_2.
El error que me da es: "El nombre de objeto @Tabla no es valido"

¿Alguien sabe como resolver mi problema?
Muchas gracias y saludos.
 

Leer las respuestas

#1 Mauro SB.
12/05/2006 - 14:53 | Informe spam
ojo con el SQL Dinamico

CREATE PROCEDURE [SPD_SubCuentas_1]
(@IdSubCuenta_1 [int],
@CodEmpresa_2 varchar(4))

AS
declare @SQL as nvarchar(300)
Declare @Tabla as nvarchar(4)
Set @Tabla = @CodEmpresa_2 + 'SubCuentasSaldos'
Set @SQL = 'DELETE ' + @Tabla + ' WHERE ([IdSubCuenta] = '+
@IdSubCuenta_1 +')'
exec( @sql)

Preguntas similares