Working with rules
Since it is self-evident that you are able to create, edit, and delete rules, I’m not going to describe how you can do this. Let me instead draw your attention to some additional small, but handy features regarding rules.
When you intensively work with ApexSQL Enforce and your own rulebases you might encounter situations in which you want to have one rule in more than one rulebase. You can easily achieve this by exporting the desired set of rules from one rulebase and import them into another. Just select “Export Rule(s)…” from the Rules menu.
Next you select all rules that you want to export by marking their respective checkbox checked and click on the “Export” button once you’re finished. ApexSQL Enforce opens up a standard Windows file dialog and exports your selected rules to an XML file on your filesystem. From there you can import this into as many other rulebases as you’d like.
Properties of a rulebase
Just as each single rule has its own set of properties, so does a rulebase. You can access these properties via a right-click on the rulebase node in the rulebase explorer and select “Edit Rulebase Properties” from the context menu.
No need to mention that you can edit the name and description property. ApexSQL Enforce also keeps an internal version number for each rulebase that is, if activated, automatically incremented, each time a rulebase is saved. This version number gets displayed on all reports generated by the tool
Even more interesting is the second tab of the rulebase property editor. Here you can assign a certain fault tolerance of this rulebase when processed against a database. Say, for example, in the screenshot above, you decide that a database will fail the review when more than one critical violation occurs.
The “Suspend Processing Thresholds” feature is useful when you need to process large rulebases or process the rulebase against large databases with many objects. In such cases you would want to set such a threshold to abort further processing of the rulebase once the threshold is reached. This threshold can be any combination of the shown conditions in the screenshot.