成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

對存儲過程代替SQL語句的討論

數(shù)據(jù)庫 SQL Server
存儲過程究竟能否代替SQL語句?有頂存儲過程的,也有頂SQL語句的,下文就對其中的一些觀點(diǎn)進(jìn)行了剖析,供您學(xué)習(xí)參考之用。

在項(xiàng)目開發(fā)中,一直有一種聲音,要用存儲過程代替SQL語句,下文就將對其中的一些觀點(diǎn)進(jìn)行辨析,供您參考。

1.如果說存儲過程多了,不好找,那你該檢討一下您的命名習(xí)慣是否規(guī)范是否達(dá)意,如果是多人合作的團(tuán)隊(duì),大家更應(yīng)該對于存儲過程的命名有一致的規(guī)則,當(dāng)然,不只存儲過程需要這樣,其他部分也都要需要這樣.好的存儲過程命名最好能包含操作名稱(insert/update/get/list等),要操作的對象名稱(表名)等,這樣,即便你的存儲過程再多,一樣也能快速找到要改的那個(gè),這樣命名,還可以讓你通過SQL 2000的對象查找功能一次性的按表名找到與此表相關(guān)的所有存儲過程的名稱,同理,你用LIST來查,也可以查到所有LIST功能的存儲過程

2,對于第二種觀點(diǎn),我是不大同意的,在過往的例子中,我發(fā)現(xiàn),將SQL語句從代碼中分離出來,帶來的好處遠(yuǎn)遠(yuǎn)大于壞處,而且這樣更符合分層的原則,如果我們將SQL語句嵌入到代碼中,當(dāng)你僅需要多獲取一個(gè)字段的值,或者對SQL語句本身做一些修改時(shí),你就必須要編譯,然后上傳DLL,而如果你是用存儲過程的話,你直接改一下存儲過程就好了,而且,將二者分離,DBA寫好存儲過程,列好說明及使用規(guī)則,交給負(fù)責(zé)寫DAL層的同學(xué),DAL層的同學(xué)閉上眼無需了解SQL語句,也可完成他的工作,因此,從這個(gè)角度來說,很好的分隔了工作,不必要要寫DAL層的同學(xué)也是SQL存儲過程高手了

3,防止注入攻擊,如果不用存儲過程而用嵌入式SQL,你勢必要為了防止注入攻擊而對輸入的用戶數(shù)據(jù)做更多的處理工作,例如處理一些SQL敏感字符等

4.更為重要的是,如果你要朝一個(gè)表中插入的是一個(gè)BINARY內(nèi)容的時(shí)候,難道你會用SQL語句嗎?

5,嵌入式SQL特別是拼貼SQL語句,一向是比較容易出問題的環(huán)節(jié),而存儲過程在寫的時(shí)候,就經(jīng)過檢查,儲如漏掉符號,INSERT的字段數(shù)目與參數(shù)數(shù)目不一致的小錯(cuò)誤,會立即被糾正

6,誰都知道存儲過程是預(yù)編譯的

7,如果你是高手,你可以分析并優(yōu)化存儲過程來提高性能(以前記得看過MS的一個(gè)牛人技術(shù)支持講述存儲過程分析和優(yōu)化,非常啟發(fā)人)

最常見的是,在實(shí)際運(yùn)用中,為了減少DATASET數(shù)據(jù)集的大小和提高性能,通常我們只SELECT當(dāng)前需要的字段,但是,隨著發(fā)展,你可以需要其他字段,這時(shí),如果用嵌入SQL,就要修改SQL語句,編譯,再寫上綁定該字段的表達(dá)式,但是,如果用存儲過程,你只要綁定表達(dá)式,然后給存儲過程中加上這個(gè)字段名就可以了.
再如,如果用STRING來拼貼SQL的INSERT語句,那很可能是這樣拼
string strSql="insert into table (id,username,password,address) value ("+Id.ToString()+","+UserName...
這樣拼貼,多加個(gè)字段時(shí),一花眼,就拼貼錯(cuò)了
如果用存儲過程,你頂多用
SqlParameter myPara=new SqlParameter("@field5",Field5);
再在存儲過程里加上這個(gè)輸入?yún)?shù)就可以了,和修改一下SQL語句就行了,SQL還會在修改過程中幫你檢查語法
后者顯然比前者用那么多+號與雙引號拼貼出錯(cuò)的幾率小多了
 

 

 

【編輯推薦】

SQL函數(shù)和存儲過程模板示例

測試SQL語句執(zhí)行時(shí)間的方法

如何使用SQL語句修改字段默認(rèn)值

教您用事務(wù)一次處理多條SQL語句

通過執(zhí)行多條SQL語句實(shí)現(xiàn)數(shù)據(jù)庫事務(wù)

責(zé)任編輯:段燃 來源: 博客園
相關(guān)推薦

2010-09-03 15:08:03

SQLselect語句

2010-09-07 15:12:25

SQL語句優(yōu)化

2009-11-05 18:07:33

Oracle導(dǎo)出sql

2010-09-07 16:46:56

SQL語句nsert

2010-09-07 11:41:24

SQL語句

2011-05-20 15:59:06

Oracle存儲Sql語句

2017-05-16 11:20:51

SQL語句解析

2010-04-16 12:58:48

Oracle sql

2010-09-06 11:24:32

SQL Server語句

2009-12-24 17:23:05

2010-09-07 15:04:21

SQL語句存儲過程

2010-09-02 11:24:45

SQL刪除

2010-04-15 17:31:10

Oracle存儲過程

2010-07-15 12:38:14

SQL Server存

2010-10-29 16:22:37

SQL存儲過程

2010-09-06 10:54:52

DB2 sql 存儲過

2010-09-03 14:14:16

SQL刪除

2010-07-08 17:15:04

SQL Server存

2010-07-26 14:43:31

SQL Server存

2012-03-01 13:34:02

Java
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 国产91一区二区三区 | 91精品国产91久久久久久 | 美女爽到呻吟久久久久 | 日韩av免费在线电影 | 久久精品欧美一区二区三区不卡 | 一级黄色录像片子 | 国产精品日韩欧美一区二区三区 | 有码一区 | 国产综合视频 | 天天干天天干 | 色伊人久久 | 日韩精品中文字幕在线 | 高清成人免费视频 | 日韩高清三区 | 超碰人人人 | 国产日韩欧美在线 | 91电影院 | 国产 欧美 日韩 一区 | 色资源在线 | 香蕉一区| 国产伦精品一区二区三毛 | 欧美另类视频在线 | 91观看| 亚洲精品在线免费 | 国产成人精品一区二区三区视频 | 精品欧美一区二区在线观看视频 | 欧美日韩精品一区二区三区四区 | 五月婷亚洲 | 国产清纯白嫩初高生在线播放视频 | 国产成人综合一区二区三区 | 操人视频在线观看 | 国产一区二区三区在线看 | 精品电影 | 国产精品久久影院 | 99精品一区二区三区 | 亚洲网站在线 | 99久9| 久久高清 | 精品成人 | 亚洲一区二区三区视频 | 国产午夜精品一区二区三区嫩草 |