ERWin Template Overview
By: Dave Wentzel
Agenda
Overview of Templates/Macros Template editor Available templates Independent column browser Forward engineering process Trouble shooting
What is a template ?
ERWin contains a macro language Used for the creation of:
– Stored Procedure Templates
– Trigger Templates
– Table script template (pre & post) Based on type of template, will automatically
generate SP, trigger, or script based on table/relationship information when the model is forward engineered
Why are we using templates?
Provide turn-key approach to data model creation
Reduce the number of triggers and stored procedures which need to be written
Can more easily make model changes without having to ‘re-write’ triggers and SPs
A little on the Macro Language...
ERWin contains a Template Toolbox which is used to create the templates
Types of Macros
Entity – Applied to tables in the diagram– Can be used to act as a loop - ‘For Each Entity’– Can be used to reference qualities of an entity - ‘For
Each (Attribute/Index/Key…)’ Relationship
– Applied to relationship information between entities
– Can reference PK, FK, Parent/Child entities
Types of Macros Continued
Attribute– References ‘attributes’ of attributes such as length,
field type, FK/PK, etc. Constraint
– References database constraint information Miscellaneous
– Arithmetic operators– Comparison operators– System Information
Stored Procedure Templates
Generates a stored procedure for WRITING / UPDATING a record in a table
Based on primary key attributes If the key values are equal to an existing record, the
record will be updated If no matching record is found, a new record will
be inserted To be used as low level write routine called from
higher level SPs.
Accessing the SP Templates
Right mouse click on a table Select Table Editor / Stored Procedure
option Attach the appropriate template to the table One must be attached for each table
Available Templates Write Template Stand Alone Table Triggers Write Dimension Template Write Fact Template
Write Template Creates spWriteTableName Assumes PK is an IDENTITY column Assumes PK is FieldNameInst Assumes columns:
– Create Date / Create User– Modify Date / Modify User– If PK provided, updates record otherwise inserts new
record
Standalone Table Triggers
Generates the insert/update triggers for standalone tables
Standalone tables may occur if created as a reference table
Generated through the SP template instead of the Trigger template because the trigger template assumed relationships
Write Dimension Template
Found in Datamart diagrams Assumes a PK of identity Assumes PK is FieldNameInst Assumes no updates If PK does not exist, will write new record
Write Fact Template
Found in Datamart diagrams Inserts new records into fact tables
Trigger Templates
Generates Update/Delete/Insert triggers for a table and it associated tables
Helps maintain RI and date validations between related tables
Triggers and Relationships
Triggers are generated based on relationships between two entities
Double click on a relationship line– Child Delete / Insert / Update– Parent Delete / Insert / Update
Options: – Restrict - prevent– Cascade - propagate change– None - no trigger relationship
Accessing the Trigger Templates Left mouse click on a table Select SQL Server Trigger Select SQL Server Trigger Template to attach
Triggers
Available Trigger Templates
Approach Child Delete Restrict Approach Child Delete Cascade Approach Child Insert Restrict Approach Child Update Restrict Approach Parent Delete Cascade Approach Parent Delete Restrict Approach Parent Insert Restrict Approach Parent Update Restrict
Available Trigger Templates
Approach Delete Footer Approach Delete Header Approach Insert Footer Approach Insert Header Approach Update Footer Approach Update Header
Parent / Child Templates
On restrict, provides Raise Error message when a parent / child relationship exists
On cascade, will delete all associated tables with the same primary key
Verifies records do not overlap based on from and thru dates
Requires fields either FromDate / ThruDate or BeginDate / EndDate
Assumes domain type of ID in some models
Header / Footer Templates
Header creates the ‘Create Trigger’ code, parameters, and initial date checks against the table
Footer templates update the ModifyDate/User in the update triggers
Assume ModifyDate/ ModifyUser fields
Standard selections for RI Actions
Table Templates
Pre / post scripts generated during table creation
Used to generate print statement before table creation so implementation script is easier to read
Used for the OLAP fact tables to generate update triggers
Accessing Table Templates
Left click on table Select Table Editor / Pre & Post Script
Independent Column Browser
Provides method of creating standard fields for use in current data model
Example: Used for standard fields applied to all tables
Domain type of ID exists which is referenced by some templates and must be assigned PK identity columns
Accessing the Independent Column Browser
Under Window select Independent Column Browser Option
Forward Engineering the Model
Triggers, stored procedures, and table scripts will be generated when you forward engineer the data model - based on the options you select
To forward engineer the model, select: Tasks \ Forward Engineer/Schema Generation
Schema Generation
Schema Options to Select
Table– Create Table– Drop Table– Pre-Script– Post-Script– Create Procedure– Drop Procedure
Options continued
Column– Validation– Default
Index– Create Index
» Alternate Key» Foreign Key» Inversion Entry» CLUSTERED» Physical Storage
Options Continued
Referential Integrity– Primary Key
» Alter (PK)
– Foreign Key» Alter (FK)
Trigger– User Defined
» RI Type Override» Relationship Override
Forward Engineer
Select PREVIEW Cut / paste into SQL query window to run Do not directly forward engineer into the
database– Could delete items you did not anticipate– May be connected to a production server
Troubleshooting
Execute script Review error statements Review script code with error Access the template to see what it is expecting Verify correct relationships, triggers, SPs, etc.
are associated with the table Verify required fields are assigned to the table
Top Related