Codigo Sql
use sesion_9
CREATE TABLE juego (
a int null,
b int not null)
CREATE TRIGGER tr1_juego
ON juego
FOR INSERT
AS
IF UPDATE(a) AND UPDATE(b)
PRINT 'JUEGO'+ cast(getdate()asvarchar(40))
INSERT juego (a, b) VALUES (1, 2)
/*if update es verdadero para ambas columnas.
** Se activa el disparador.*/
INSERT juego VALUES (1, 2)
/*NULL explícito: if update es verdadero para ambascolumnas.
** Se activa el disparador.*/
INSERT juego VALUES (NULL, 2)
/* Si hay un valor predeterminado para la columna a, if update es verdadero para ambas
columnas. Se activa el disparador.*/
INSERTjuego (b) VALUES (2)
/* Si no hay ningún valor predeterminado en la columna a, «if update» no es verdadero para
la columna a. El disparador no se activa.*/
INSERT juego (b) VALUES (2)
----------CREATE TRIGGER tr4_juego
ON juego
FOR INSERT
AS
declare @num int
set @num =9
----IF UPDATE(a) AND UPDATE(b)
PRINT 'JUEGO'+ cast(@num as varchar(2))
-----------
CREATE TABLE expedientes (
codeVARCHAR(15) NOT NULL,
state VARCHAR(20) DEFAULT 'INICIO',
stateChangedDate DATETIME,
PRIMARY KEY (code)
)
CREATE TABLE expStatusHistory (
id INT IDENTITY,
code VARCHAR(15) NOT NULL,
state VARCHAR(20) NOTNULL,
date DATETIME DEFAULT GetDate(),
PRIMARY KEY (id)
)
CREATE TABLE PRODUCTO (
code VARCHAR(15) NOT NULL,
DESCIPCION VARCHAR(20),
PRECIO INT ,
STOCK INT
PRIMARY KEY (code)
)
CREATE TABLE Hist_prod1(
id INT IDENTITY,
code VARCHAR(15) NOT NULL,
descipcion VARCHAR(20) NOT NULL,
precioanterior int,
precionuevo int,
date DATETIME DEFAULT GetDate()
PRIMARY KEY (id)
)
alter TRIGGEREstadoCambioFechaTrigger
ON expedientes
AFTER UPDATE AS
-- ¿Ha cambiado el estado?
IF UPDATE(state)
BEGIN
-- Actualizamos el campo stateChangedDate a la fecha/hora actual
UPDATE expedientes SETstateChangedDate=GetDate()
WHERE code=(SELECT code FROM inserted)
INSERT INTO expStatusHistory (code, state)
SELECT expe.code , deleted.state FROM expedientes expe inner join deleted
on expe.code=deleted.code
END
-----para...
Regístrate para leer el documento completo.