3 回答
TA贡献1998条经验 获得超6个赞
我一直对大多数程序员在数据访问层中混合UI逻辑的倾向感到失望:
SELECT
FirstName + ' ' + LastName as "Full Name",
case UserRole
when 2 then "Admin"
when 1 then "Moderator"
else "User"
end as "User's Role",
case SignedIn
when 0 then "Logged in"
else "Logged out"
end as "User signed in?",
Convert(varchar(100), LastSignOn, 101) as "Last Sign On",
DateDiff('d', LastSignOn, getDate()) as "Days since last sign on",
AddrLine1 + ' ' + AddrLine2 + ' ' + AddrLine3 + ' ' +
City + ', ' + State + ' ' + Zip as "Address",
'XXX-XX-' + Substring(
Convert(varchar(9), SSN), 6, 4) as "Social Security #"
FROM Users
通常,程序员这样做是因为他们打算将他们的数据集直接绑定到网格,并且它只是方便SQL Server格式服务器端而不是客户端上的格式。
如上所示的查询非常脆弱,因为它们将数据层紧密耦合到UI层。最重要的是,这种编程风格彻底防止了存储过程的重用。
TA贡献1825条经验 获得超4个赞
人类可读的密码字段,egad。自我解释。
对索引 列使用LIKE,我几乎总是想说LIKE。
回收SQL生成的PK值。
惊喜没人提到神表。没有什么比100列的位标志,大字符串和整数更像“有机”。
然后是“我想念.ini文件”模式:在大文本字段中存储CSV,管道分隔的字符串或其他解析所需的数据。
而对于如何使用游标的MS SQL服务器在所有。有一种更好的方法来执行任何给定的游标任务。
编辑,因为有这么多!
添加回答
举报