T-SQL代码复用与代码库维护指南
1. T-SQL代码复用
在许多简单的情况下,约束是非常有用的。但业务规则往往更为复杂,有时使用约束并不实际或不可行。
1.1 使用触发器实现复杂业务规则
为了说明这一点,我们添加一个新表 TeamMembers
,它通过 TeamID
列引用 Teams
表,创建语句如下:
CREATE TABLE dbo.TeamMembers
(
TeamMemberID INT NOT NULL ,
TeamID INT NOT NULL ,
Name VARCHAR(50) NOT NULL ,
IsTeamLead CHAR(1) NOT NULL ,
CONSTRAINT PK_TeamMembers PRIMARY KEY ( TeamMemberID ) ,
CONSTRAINT FK_TeamMembers_Teams
FOREIGN KEY ( TeamID ) REFERENCES dbo.Teams ( TeamID ) ,
CONSTRAINT CHK_TeamMembers_IsTeamLead
CHECK ( IsTeamLead IN ( 'Y', 'N' ) )
) ;
假设我们需要实现“任何团队成员数量不得超过两个”的业务规则。使用触发器实现这个业务规则非常直接,代码如下: