ayuda con trigger

30/09/2004 - 21:17 por Claudio Valdés | Informe spam
Estimados:

quisiera saber de la instruccion "in (select distinct driverno from
inserted)" que significa "from inserted", porque esta no es una tabla

create trigger isrEmployees on employees
for insert, update
as

if update(driverno)

if exists(select driverno, count(*) from employees where driverno is
not null and
driverno in (select distinct driverno from inserted) group by
driverno
having count(*)>1)
Begin
raiserror('Numero de licencia repetido, se aborto la
operacion',16,1)
rollback tran
End

Agredeciendo su colaboracion

Atte,
Claudio Valdés

Preguntas similare

Leer las respuestas

#1 MAURICIO
30/09/2004 - 21:57 | Informe spam
Inserted es la tabla que contiene los registros que estas
ingresando
Deleted es la tabla que contiene los registros que
eliminas

Por ejemplo:
Si usas: Insert NombreTabla Values (Valor1, Valor2)

La tabla inserted que empleas en el Trigger tiene la
misma estructura que NombreTabla y almacena los valores
Valor1 y Valor2

Si usas: Delete NombreTabla Where NombreCampo=condicion

La tabla Deleted que empleas en el Trigger tiene la misma
estructura que NombreTabla y almacena los valores del
registro que cumple la condicion

Si usas: Update NombreTabla Set C1=NuevoV1

Aqui se usan las dos tablas:

Inserted tendra los nuevos valores representados por
NuevoV1

Deleted tendra los valores anteriores al cambio

Espero me hayas entendido

EXITOS


Mauricio




Estimados:

quisiera saber de la instruccion "in (select distinct


driverno from
inserted)" que significa "from inserted", porque esta no


es una tabla

create trigger isrEmployees on employees
for insert, update
as

if update(driverno)

if exists(select driverno, count(*) from employees


where driverno is
not null and
driverno in (select distinct driverno from


inserted) group by
driverno
having count(*)>1)
Begin
raiserror('Numero de licencia repetido, se


aborto la
operacion',16,1)
rollback tran
End

Agredeciendo su colaboracion

Atte,
Claudio Valdés


.

Respuesta Responder a este mensaje
#2 Luis Ormeño
30/09/2004 - 22:06 | Informe spam
Los cursores Inserted y deleted contiene informacion del
ultimo registro agregardo y eliminado, no son tablas
fisica.

por ejemplo cuando actualizas el registro en deleted es
del anterior y en el inserted esta el modificado..




Estimados:

quisiera saber de la instruccion "in (select distinct


driverno from
inserted)" que significa "from inserted", porque esta no


es una tabla

create trigger isrEmployees on employees
for insert, update
as

if update(driverno)

if exists(select driverno, count(*) from employees


where driverno is
not null and
driverno in (select distinct driverno from


inserted) group by
driverno
having count(*)>1)
Begin
raiserror('Numero de licencia repetido, se


aborto la
operacion',16,1)
rollback tran
End

Agredeciendo su colaboracion

Atte,
Claudio Valdés


.

Respuesta Responder a este mensaje
#3 Maxi
30/09/2004 - 22:26 | Informe spam
Hola, los Trigger generan 2 tipos de tabla virtuales (inserted y Deleted),
donde representan la misma estructura (campos) de la tabla donde se ejecuta
el TR.

La tabla inserted contiene los nuevos valores y la Deleted los viejos
valores, entonces:

Si haces un TR para una instruccion Insert se llenara la tabla Inserted,
para una Delete la Deleted y para una UPDATE ambas.

Estas tablas se pueden manipulear como cualquier otra dentro de un TR.

Un abrazo


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Claudio Valdés" escribió en el mensaje
news:
Estimados:

quisiera saber de la instruccion "in (select distinct driverno from
inserted)" que significa "from inserted", porque esta no es una tabla

create trigger isrEmployees on employees
for insert, update
as

if update(driverno)

if exists(select driverno, count(*) from employees where driverno is
not null and
driverno in (select distinct driverno from inserted) group by
driverno
having count(*)>1)
Begin
raiserror('Numero de licencia repetido, se aborto la
operacion',16,1)
rollback tran
End

Agredeciendo su colaboracion

Atte,
Claudio Valdés







Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.769 / Virus Database: 516 - Release Date: 24/09/2004
Respuesta Responder a este mensaje
#4 Claudio Valdés
01/10/2004 - 02:00 | Informe spam
Muchas gracias a todos por sus respuestas

Atte,
Claudio Valdés

"Claudio Valdés" escribió en el mensaje
news:
Estimados:

quisiera saber de la instruccion "in (select distinct driverno from
inserted)" que significa "from inserted", porque esta no es una tabla

create trigger isrEmployees on employees
for insert, update
as

if update(driverno)

if exists(select driverno, count(*) from employees where driverno is
not null and
driverno in (select distinct driverno from inserted) group by
driverno
having count(*)>1)
Begin
raiserror('Numero de licencia repetido, se aborto la
operacion',16,1)
rollback tran
End

Agredeciendo su colaboracion

Atte,
Claudio Valdés


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida