[转帖]T-SQL 编码标准
时间:2010-11-21 来源:潇湘隐者
可能让人觉得很奇怪,但好像的确没有什么“正式的”T-SQL 编码标准。早在 1999 年末的时候,我惊喜地发现 John Hindmarsh 提出的 SQL Server 7.0 标准,我在 2000 年 2 月的社论中对他的某些建议进行了总结。(2000 年 2 月以及本月的“下载”中都包括了 John 原来的标准。)后来,Ron Talmage 撰写了一系列专栏文章,提出了他对各种“最佳方法”的建议,当然,SQL Server 小组也已正式发布了 SQL Server 最佳方法分析器 (SQLBPA)。现在,一位具有超过 25 年经验的数据库管理员和应用程序开发员 Brian Walker 又提出了他的建议和提示。
使用 SQL-92 标准连接句法。
为了提高性能,应优先使用连接,然后使用子查询或嵌套查询。
确保变量和参数的类型和大小与表数据列相匹配。
确保使用所有变量和参数,或者全部删除。
尽可能将临时对象放置在本地。
只使用在存储过程中创建的临时表。
检查输入参数的有效性。
优先使用 SELECT...INTO,然后使用 INSERT...SELECT,以避免大量死锁。
维护工作需要的逻辑单元;在可以缩短的情况下,不要创建大量或长时间运行的进程。
不要在任何代码中使用 SELECT *。
在过程中使用缩进、块、制表符和空格(参阅示例脚本)。
T-SQL 语句要大写。
在过程中添加大量注释,确保可以识别进程。在有助于澄清处理步骤的地方使用行注释。
包括事务管理,除非要从 MTS 进程中调用过程。(为 MTS 进程编写独立的过程。)
监视 @@TRANCOUNT 以确定事务的责任级别。
避免使用 GOTO,错误处理程序中除外。
避免使用嵌套过程。
避免隐式解析对象名称,确保所有对象都归 dbo 所有。
下载 412BRIAN.ZIP
链接至www.microsoft.com/downloads/details.aspx?displayla%20ng=en&familyid=B352EB1F-D3CA-44EE-893E-9E07339C1F22&displaylang=en
有关 SQL Server Professional 和 Pinnacle Publishing 的详细信息,请访问其 Web 站点 http://www.pinpub.com/