在程序中书写SQL语句


   园子里关于存储过程的讨论有很多,不少人建议将SQL语句写在程序中,这篇随笔讨论一下SQL语句在程序中的写法。 

1 None.gif string  strSQL  =   " SELECT [AddressID], [AddressLine1], [AddressLine2], [City], [StateProvinceID], [PostalCode], [rowguid], [ModifiedDate] FROM [AdventureWorks].[Person].[Address] WHERE City = 'Bothell' ORDER BY AddressID " ;

    这是最普通的一种写法,而且在开发中被广泛采用。

 1 None.gif                  string  strSQL  =       " SELECT  "   +  
 2 None.gif                                         " [AddressID],  "   +  
 3 None.gif                                         " [AddressLine1],  "   +
 4 None.gif                                         " [AddressLine2],  "   +
 5 None.gif                                         " [City],  "   +
 6 None.gif                                         " [StateProvinceID],  "   +
 7 None.gif                                         " [PostalCode],  "   +
 8 None.gif                                         " [rowguid],  "   +
 9 None.gif                                         " [ModifiedDate]  "   +
10 None.gif                                     " FROM  "   +
11 None.gif                                         " [AdventureWorks].[Person].[Address]  "   +
12 None.gif                                     " WHERE  "   +
13 None.gif                                         " City = 'Bothell'  "   +
14 None.gif                                     " ORDER BY  "   +
15 None.gif                                         " AddressID " ;
16 None.gif

    第二种写法,除了让人开着舒服一点外,没有任何好处。

    上图所示的写法要更好一点,可以降低维护难度,提高开发效率,团队开发中应该对这些小细节加以规定。其中,图中标示的第一点可以看看在SQL Server 2005中通过下图菜单生成的SQL语句,但不知道为什么SQL Server 2005的查询编辑器生成的SQL语句还是那么蹩脚。微软完全可以解析SQL语句并使之成为更有利于开发的格式。

    如果有两个表进行连接,INNER(LEFT/RIGHT) JOIN等语句也应该写在一行。另外,建议使用更简单的英文别名代替中文表名。

    呵呵,很简单吧?如果有更好的书写SQL语句的改进方案,请告诉我。

    14.gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值