3 回答

TA貢獻(xiàn)1998條經(jīng)驗(yàn) 獲得超6個(gè)贊
我一直對(duì)大多數(shù)程序員在數(shù)據(jù)訪問(wèn)層中混合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
通常,程序員這樣做是因?yàn)樗麄兇蛩銓⑺麄兊臄?shù)據(jù)集直接綁定到網(wǎng)格,并且它只是方便SQL Server格式服務(wù)器端而不是客戶端上的格式。
如上所示的查詢非常脆弱,因?yàn)樗鼈儗?shù)據(jù)層緊密耦合到UI層。最重要的是,這種編程風(fēng)格徹底防止了存儲(chǔ)過(guò)程的重用。

TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超4個(gè)贊
人類(lèi)可讀的密碼字段,egad。自我解釋。
對(duì)索引 列使用LIKE,我?guī)缀蹩偸窍胝f(shuō)LIKE。
回收SQL生成的PK值。
驚喜沒(méi)人提到神表。沒(méi)有什么比100列的位標(biāo)志,大字符串和整數(shù)更像“有機(jī)”。
然后是“我想念.ini文件”模式:在大文本字段中存儲(chǔ)CSV,管道分隔的字符串或其他解析所需的數(shù)據(jù)。
而對(duì)于如何使用游標(biāo)的MS SQL服務(wù)器在所有。有一種更好的方法來(lái)執(zhí)行任何給定的游標(biāo)任務(wù)。
編輯,因?yàn)橛羞@么多!
添加回答
舉報(bào)