|
SQL/TRIGGERS |
| Top 3 Resources | |
| Resource | LearningComputer.com |
| Resource | MSDN |
| Resource | SQL Server Performance.com |
| Quick Reference | |
| Code | |
| Delete Trigger | CREATE TRIGGER tblCalibrationRecords_DTrig ON dbo.tblCalibrationRecords FOR DELETE AS SET NOCOUNT ON /* * CASCADE DELETES TO 'tblTraceabilityLog' */ DELETE tblTraceabilityLog FROM deleted, tblTraceabilityLog WHERE deleted.CalibrationID = tblTraceabilityLog.CalibrationID /* * CASCADE DELETES TO 'tblCertificateStandards' */ DELETE tblCertificateStandards FROM deleted, tblCertificateStandards WHERE deleted.CalibrationID = tblCertificateStandards.CalibrationID /* * CASCADE DELETES TO 'tblCalibrationReportData' */ DELETE tblCalibrationReportData FROM deleted, tblCalibrationReportData WHERE deleted.CalibrationID = tblCalibrationReportData.CalibrationID |
| Insert Trigger | CREATE TRIGGER tblCalibrationRecords_ITrig ON dbo.tblCalibrationRecords FOR INSERT AS SET NOCOUNT ON /* * PREVENT INSERTS IF NO MATCHING KEY IN 'tblAssets' */ IF (SELECT COUNT(*) FROM inserted) != (SELECT COUNT(*) FROM tblAssets, inserted WHERE (tblAssets.AssetID = inserted.AssetID)) BEGIN RAISERROR 44447 'The record can''t be added or changed. Referential integrity rules require a related record in table ''tblAssets''.' ROLLBACK TRANSACTION END /* * PREVENT INSERTS IF NO MATCHING KEY IN 'tblClient' */ IF (SELECT COUNT(*) FROM inserted) != (SELECT COUNT(*) FROM tblClient, inserted WHERE (tblClient.ClientAccountNumber = inserted.ClientAccountNumber)) BEGIN RAISERROR 44447 'The record can''t be added or changed. Referential integrity rules require a related record in table ''tblClient''.' ROLLBACK TRANSACTION END |
| Update Trigger | CREATE TRIGGER "tblCalibrationRecords_UTrig" ON dbo.tblCalibrationRecords FOR UPDATE AS SET NOCOUNT ON /* * PREVENT UPDATES IF NO MATCHING KEY IN 'tblAssets' */ IF UPDATE(AssetID) BEGIN IF (SELECT COUNT(*) FROM inserted) != (SELECT COUNT(*) FROM tblAssets, inserted WHERE (tblAssets.AssetID = inserted.AssetID)) BEGIN RAISERROR 44446 'The record can''t be added or changed. Referential integrity rules require a related record in table ''tblAssets''.' ROLLBACK TRANSACTION END END /* * CASCADE UPDATES TO 'tblTraceabilityLog' */ IF UPDATE(CalibrationID) BEGIN UPDATE tblTraceabilityLog SET tblTraceabilityLog.CalibrationID = inserted.CalibrationID FROM tblTraceabilityLog, deleted, inserted WHERE deleted.CalibrationID = tblTraceabilityLog.CalibrationID END /* * CASCADE UPDATES TO 'tblCertificateStandards' */ IF UPDATE(CalibrationID) BEGIN UPDATE tblCertificateStandards SET tblCertificateStandards.CalibrationID = inserted.CalibrationID FROM tblCertificateStandards, deleted, inserted WHERE deleted.CalibrationID = tblCertificateStandards.CalibrationID END /* * PREVENT UPDATES IF NO MATCHING KEY IN 'tblClient' */ IF UPDATE(ClientAccountNumber) BEGIN IF (SELECT COUNT(*) FROM inserted) != (SELECT COUNT(*) FROM tblClient, inserted WHERE (tblClient.ClientAccountNumber = inserted.ClientAccountNumber)) BEGIN RAISERROR 44446 'The record can''t be added or changed. Referential integrity rules require a related record in table ''tblClient''.' ROLLBACK TRANSACTION END END /* * CASCADE UPDATES TO 'tblCalibrationReportData' */ IF UPDATE(CalibrationID) BEGIN UPDATE tblCalibrationReportData SET tblCalibrationReportData.CalibrationID = inserted.CalibrationID FROM tblCalibrationReportData, deleted, inserted WHERE deleted.CalibrationID = tblCalibrationReportData.CalibrationID END |