Compartir a través de


Desencadenadores DML de la base de datos de ejemplo AdventureWorks

En este tema se describen varios ejemplos de desencadenadores DML que se incluyen en la base de datos de ejemplo AdventureWorks. Estos desencadenadores DML están diseñados para aplicar las reglas de negocios de Adventure Works Cycles y contribuir a proteger la integridad de sus datos.

Para ver el texto de cada desencadenador en SQL Server Management Studio

  1. En el Explorador de objetos, busque la tabla en la que se definió el desencadenador y expanda la carpeta Desencadenadores.

  2. Haga clic con el botón secundario en el desencadenador que desee y luego haga clic en Incluir desencadenador como.

Establecer un campo después de una actualización

Desencadenador DLM uSalesOrderHeader

La tabla Sales.SalesOrderHeader incluye la columna RevisionNumber para reflejar el número de veces que se ha actualizado determinada fila, excluido el campo Status. Después de una actualización, el desencadenador DML uSalesOrderHeader incrementa el campo RevisionNumber en uno o lo establece en uno si es NULL.

El desencadenador DML uPurchaseOrderHeader realiza en la tabla Purchasing.PurchaseOrderHeader la misma acción que el desencadenador DML uSalesOrderHeader realiza en la tabla Sales.SalesOrderHeader.

Llenar una tabla después de insertar y establecer un campo en otra tabla

Desencadenadores DML iPurchaseOrderDetail y uPurchaseOrderHeader

Cuando se insertan datos en la tabla PurchaseOrderDetail, el desencadenador DML iPurchaseOrderDetail también inserta parte de los datos insertados en la tabla Production.TransactionHistory. Puesto que varios elementos de línea de PurchaseOrderDetail forman un pedido de compra en la tabla PurchaseOrderHeader, el campo Subtotal de PurchaseOrderHeader debe actualizarse cuando se produzca una inserción en PurchaseOrderDetail. El desencadenador iPurchaseOrderDetail agrega el campo LineTotal de PurchaseOrderDetail para un determinado pedido de venta y establece el campo Subtotal de PurchaseOrderHeader con dicha agregación.

Recuerde que cuando el desencadenador DML realiza una actualización en Purchasing.PurchaseOrderHeader, provoca la activación del desencadenador de actualización uPurchaseOrderHeader que existe en la tabla Purchasing.PurchaseOrderHeader. Para obtener más información acerca de los desencadenadores que provocan la activación de otros desencadenadores, vea Usar desencadenadores anidados.

El desencadenador DML uPurchaseOrderDetail lleva a cabo las mismas acciones en las tablas TransactionHistory y PurchaseOrderHeader que iPurchaseOrderDetail, pero lo hace cuando se actualiza la tabla PurchaseOrderDetail y no cuando recibe una inserción.

Los desencadenadores DML iWorkOrder y uWorkOrder de la tabla Production.WorkOrder sólo insertan datos en la tabla TransactionHistory.