Trigger con ALTER TABLE desde Select

06/07/2004 - 12:37 por Jomaweb | Informe spam
Hola:
Pretendo añadir un campo nuevo en la tabla de Campos por cada Categoria
añadida en la tabla Categorias..
Lo hago mediante el siguiente TRIGGER:

CREATE TRIGGER anadir_campo ON [dbo].[CATEGORIAS]
FOR INSERT
AS
declare @campo varchar(200)
select @campo=categoria from inserted
begin
ALTER TABLE campos ADD [ @campo ] DATETIME
end


El problema es que me añade literalmente "@campo", no el nombre del campo
real introducido. Los corchetes son para los nombres de campo con espacios.
Pero si los quito me da "error en @campo".

Sé que es un error de sintaxis pero no lo veo ¿podéis echarme una mano?

Gracias mil
 

Leer las respuestas

#1 Carlos Sacristan
06/07/2004 - 13:09 | Informe spam
No se puede porque lo tendrías que hacer con sql dinámico (EXEC o
SP_EXECUTESQL), construyendo la sentencia de alteración de tabla y
ejecutándola.

Sin embargo lo que estás haciendo no te lo puedo recomendar en absoluto.
No conozco la situación que te lleva a plantearte implementar ese código,
pero no creo que sea lo mejor ir modificando el diseño de una tabla cada vez
que se modifican los datos. ¿Por qué no explicas exactamente lo que estás
intentando hacer?


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

Por favor, responder únicamente al foro
Se agradece la inclusión de sentencias DDL


"Jomaweb" escribió en el mensaje
news:
Hola:
Pretendo añadir un campo nuevo en la tabla de Campos por cada Categoria
añadida en la tabla Categorias..
Lo hago mediante el siguiente TRIGGER:

CREATE TRIGGER anadir_campo ON [dbo].[CATEGORIAS]
FOR INSERT
AS
declare @campo varchar(200)
select @campo=categoria from inserted
begin
ALTER TABLE campos ADD [ @campo ] DATETIME
end


El problema es que me añade literalmente "@campo", no el nombre del campo
real introducido. Los corchetes son para los nombres de campo con


espacios.
Pero si los quito me da "error en @campo".

Sé que es un error de sintaxis pero no lo veo ¿podéis echarme una mano?

Gracias mil


Preguntas similares