- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
T-SQL编程规范
Transact-SQL編程規範?
1.? 基本原則
以大小寫敏感編寫SQL語句。
儘量使用Unicode 資料類型。
優先使用連接代替子查詢或嵌套查詢。
儘量使用參數化SQL查詢代替語句拼接SQL查詢。
禁止使用[拼音]+[英語]的方式來命名SQL物件或變數。
?
2.? 命名規範
在一般情況下,採用Pascal樣式或Camel樣式命名資料庫物件,使在開發基於資料庫應用程式的時候通過ORM工具生成的資料訪問代碼(比如C#)更好的符合命名規範。另外,關係型數據庫同Xml結合得越來越緊密,規範的命名很有必要。
在實際資料庫開發過程中,如果需求方已經提供資料庫設計方案,以提供的方案為准;在原有資料庫上進行升級開發時,在可行的情況下可適當做出設計調整以符合編程規範。
?
1.1. 對象命名
1.1.1.? 資料庫
第一種方式,採用Pascal樣式命名,命名格式為[項目英文名稱]。
示例:AdventureWorks
第二種方式,採用Pascal樣式命名,命名格式為[項目英文名稱] + Db。
示例:AdventureWorksDb
? BizTalkRuleEngineDb
建議採用第一種方式。
?
1.1.2.?數据庫
使用大寫名字。
?
1.1.3.? 數據架構
除SQL Server 系統定義的資料架構外,新建架構採用Pascal樣式命名,命名格式為[架構名]。
示例:HumanResources
??? ? Production
?
對資料庫物件 Table,View,Procedure,Function等使用資料架構進行歸類。在SQL Server 2000中dbo為默認架構。
?
1.1.4.? 數據表
採用Pascal樣式命名,命名格式為[表名]。
示例:Employee
??? ? Product
?
表名以英文單數命名,主要是參考SQL Server 2005示例資料庫,個人理解為更好的使用ORM工具生成符合編程規範的代碼(比如C#)。典型的例子,使用Product ,而不是Products。
?
1.1.5.? 資料視圖
視圖名稱採用Pascal樣式命名,命名格式為Vew + [視圖名稱]。
示例:VewEmployee
??? ? VewSalesPerson
?
1.1.6.? 數據列
列名稱命名採用英文單詞或縮寫,英文單詞只來自于具體業務定義,儘量表達清楚含義。採用Pascal樣式命名,命名格式為[列名稱]。
示例:AddressID
??? ? PostalCode
?
儘量避免使用拼音命名,如果不可避免,對於比較短的列名,採用拼音全寫,如果拼音列名比較複雜,可以採用首個字用全拼,其他字用首字母大寫表示。
示例:寧波 Ningbo
??經營方式 JingYFS
?
1.1.7.? 存儲過程
建議採用Pascal樣式命名,命名格式為[存儲過程名稱]。
示例:USP_GetUser
備註:在SQL Server 2005示例資料庫中使用Camel樣式命名。
如果存在嵌套調用情況﹐避免使用#t1,#t2等臨時表名﹐應用存儲過程名加編號的方式﹐如#SP_GetUser_t1
1.1.8.? 函數
自定義函數採用Pascal樣式命名,命名格式為[函數名],系統函數使用全部大寫或者全部小寫。
示例:SELECT ISNULL(@LastName,Unknown last name);
GETDATE()
?
1.1.9.? 用戶定義資料類型
採用Pascal樣式命名,命名格式為[自定義資料類型名稱]。
示例:Flag
??? ? NameStyle
?
1.1.10.???? DML觸發器
DML 觸發器是當資料庫伺服器中發生資料操作語言 (DML) 事件時要執行的操作。DML 事件包括對表或視圖發出的 UPDATE、INSERT 或 DELETE 語句。根據事件不同命名規則使用首碼進行區分,格式為 [u|i|d] + [表名|視圖名]
示例:Employee_UPD
? Employee_INS
? Employee_DEL
?如果存在嵌套調用情況﹐避免使用#t1,#t2等臨時表名﹐應用存儲過程名加編號的方式﹐如# Employee_UPD_t1
?
1.1.11.???? DDL觸發器
回應各種資料定義語言 (DDL) 事件而激發。這些事件主要與以關鍵字 CREATE、ALTER 和 DROP 開頭的 Transact-SQL 語句對應。執行 DDL 式操作的系統存儲過程也可以激發 DDL 觸發器。
示例:
CREATE TRIGGER [ddlDatabaseTriggerLog]
ON DATABASE
FOR DDL_DATABASE_LEVEL_EVENTS
AS
?
1.1.12.???? 主
文档评论(0)