示例:Flag
NameStyle
1.3.11. DML触发器
DML触发器是当数据库服务器中发生数据操作语言 (DML) 事件时要执行的操作。DML 事件包括对表或视图发出的 UPDATE、INSERT 或 DELETE 语句。根据事件不同命名规则使用前缀进行区分,格式为 [u|i|d] + [表名|视图名]
示例:uEmployee
iEmployee
dEmployee
另外一种方式为,
AFTER 触发器:TR_表名_[后面插入加I,修改加U,删除加D]。
INSTEAD OF 触发器:TR_表名或视图名_OF[后面插入加I,修改加U,删除加D]
1.3.12. DDL触发器
响应各种数据定义语言 (DDL) 事件而激发。这些事件主要与以关键字 CREATE、ALTER 和 DROP 开头的 Transact-SQL 语句对应。执行 DDL 式操作的系统存储过程也可以激发 DDL 触发器。
采用Camel样式命名,命名单词能够描述DDL触发器功能。
示例:
CREATE TRIGGER safety
ON DATABASE
FOR DROP_TABLE, ALTER_TABLE
AS
PRINT ''You must disable Trigger "safety" to drop or alter tables!''
ROLLBACK ;
另外一种方式为添加ddl前缀,
示例:
CREATE TRIGGER [ddlDatabaseTriggerLog]
ON DATABASE
FOR DDL_DATABASE_LEVEL_EVENTS
AS
1.3.13. 主键、外键关系和索引
主键: PK_[表名称]_[主键];如果是组合主键,使用PK_[表名]_[主键1]_[主键2]。
示例:PK_Store_CustomerID
PK_StoreContact_CustomerID_ContactID
外键关系:FK_[从表名称]_[主表名称]_[外键列名称]。
示例:FK_StoreContact_Store_CustomerID
聚集索引:PK_[表名称]_[主键];如果是组合主键,使用PK_[表名]_[主键1]_[主键2]。
示例:PK_Store_CustomerID
PK_StoreContact_CustomerID_ContactID
唯一非聚集索引:AK_[表名称]_[列名称]。
示例:AK_Store_rowguid
不唯一非聚集索引:PK_[表名称]_[列名称]。
示例:IX_Store_SalesPersonID
主 XML索引:PXML_[表名称]_[Xml类型列名称]。
示例:PXML_Store_Demographics
备注:以上命名参考Sql Server 2005示例数据库,一般只需设计器自动生成,不需要额外修改。
1.4. 参数命名
1.4.1. 数据列参数
命名格式为 @ + [列名称]。
示例:@EmployeeID
在列名不符合Pascal样式时(早期遗留系统),例如使用全部大写的列名称,或使用“_”进行连接的字段名称,参数名称定义使用 @ + [列名称],这里的列名称尽量符合Pascal样式命名。
1.4.2. 非数据列参数
在参数无法跟列名称进行关联时,使用能够反映该参数功能的英文单词或单词组合, 采用Pascal样式命名。
示例:@ErrorID
@Flag
1.5. 常见命名
1.5.1. 常用字段命名
这里的常用字段是指在建表时频繁使用的表名或列名,下表对常用字段进行建议性定义,
列名称 数据类型 说明
CreatedDate datetime 纪录创建日期,一般使用GETDATE()自动生成
ModifiedDate datetime 纪录最后修改日期,首次使用GETDATE()
DeletedDate