INSERT.... SELECT

02/12/2003 - 02:48 por luis_mtz | Informe spam
Saludos!

Tengo la siguiente estructura...

CREATE TABLE movdet
(
mdt_cla int IDENTITY not Null PRIMARY KEY,
mov_cla int constraint movdet_fkey_mov_cla foreign key
(mov_cla) references movimiento(mov_cla) ON DELETE CASCADE,
art_cla int constraint movdet_fkey_art_cla foreign key
(art_cla) references articulo(art_cla),
mdt_can decimal(14,4),
mdt_cos decimal(14,4),
mdt_pre decimal(14,4),
mdt_fec datetime,
)


intento agregar el siguiente TRIGGER..

CREATE TRIGGER trg_insert_movdet_instead ON movdet INSTEAD
OF INSERT as
BEGIN
INSERT INTO movdet
(mov_cla,art_cla,mdt_can,mdt_cos,mdt_pre,mdt_par,mdt_fec)
VALUES (SELECT
i.mov_cla,i.art_cla,i.mdt_can,i.mdt_cos,i.mdt_pre,a.mov_fec

FROM inserted i INNER JOIN
movimiento a ON i.mov_cla=a.mov_cla)
END


pero al agregar el trigger me devuelve un error de
syntaxis despues del SELECT.
La tabla MOVIMIENTO ya esta creada.

En la definicion del trigger defino la lista de campos de
la tabla (movdet, que es donde se insertara el registro)
ya que no deseo afectar a la columna mdt_cla ya que es un
IDENTITY, y en el SELECT no incluyo este campo.

gracias.

luis_mtz
 

Leer las respuestas

#1 ulises
02/12/2003 - 03:04 | Informe spam
La claúsula VALUES está sobrando ... cambialo por :

INSERT INTO movdet ( )
SELECT ... FROM inserted ...

Saludos,
Ulises

On Mon, 1 Dec 2003 17:48:55 -0800, "luis_mtz"
wrote:

Saludos!

Tengo la siguiente estructura...

CREATE TABLE movdet
(
mdt_cla int IDENTITY not Null PRIMARY KEY,
mov_cla int constraint movdet_fkey_mov_cla foreign key
(mov_cla) references movimiento(mov_cla) ON DELETE CASCADE,
art_cla int constraint movdet_fkey_art_cla foreign key
(art_cla) references articulo(art_cla),
mdt_can decimal(14,4),
mdt_cos decimal(14,4),
mdt_pre decimal(14,4),
mdt_fec datetime,
)


intento agregar el siguiente TRIGGER..

CREATE TRIGGER trg_insert_movdet_instead ON movdet INSTEAD
OF INSERT as
BEGIN
INSERT INTO movdet
(mov_cla,art_cla,mdt_can,mdt_cos,mdt_pre,mdt_par,mdt_fec)
VALUES (SELECT
i.mov_cla,i.art_cla,i.mdt_can,i.mdt_cos,i.mdt_pre,a.mov_fec

FROM inserted i INNER JOIN
movimiento a ON i.mov_cla=a.mov_cla)
END


pero al agregar el trigger me devuelve un error de
syntaxis despues del SELECT.
La tabla MOVIMIENTO ya esta creada.

En la definicion del trigger defino la lista de campos de
la tabla (movdet, que es donde se insertara el registro)
ya que no deseo afectar a la columna mdt_cla ya que es un
IDENTITY, y en el SELECT no incluyo este campo.

gracias.

luis_mtz

Preguntas similares