数据库访问的时候,用存储过程好,还是在代码中写SQL语句好

wxz280973534 2008-12-01 01:28:03
在用ado.net访问数据库的时候,你可以把sql语句直接作为cmd参数,
也可以把sql语句保存成存储过程存在数据库中,然后用cmd调用这个存储过程的名字,两个方法都行
但是我不明白,这两个方法的利弊.
还有如果是把SQL语句写在程序中,那么将来我发布程序以后,感觉要修改SQL语句,那么我就直接在程序中修个
让后将修改好的C#程序发布就好了,那如果我是写成存储过程保存在数据库中,那要如何更新?
...全文
552 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
yanrabbit163 2008-12-01
  • 打赏
  • 举报
回复
肯定是要看具体的需求了,一般情况下一条SQL语句不能完成功能的用存储过程,经常用到的SQL语句用存储过程(比如验证用户身份的等).其他的SQL
louis4592 2008-12-01
  • 打赏
  • 举报
回复
用存储过程好 ,因为它已经预编译过了。程序不用再检查它的语法有没有错误。执行比SQL语句快。
但就像楼上说的,多了的话会很麻烦。
所以还得看具体情况而定。LZ 你认为呢?
yuloukong 2008-12-01
  • 打赏
  • 举报
回复
UP
wangping_li 2008-12-01
  • 打赏
  • 举报
回复
我用的就全是存储过程,没用SQL,哪怕sql句语我也保存在存储过程中
我还是觉得存储过程好些,像有的要动态拼条件的直接传一个参数就行了,也方便的
cpio 2008-12-01
  • 打赏
  • 举报
回复
小东西直接写也没什么,这样快

如果公司人力足够,可以用存储过程

不过现在很多框架都是把SQL语句写在外面的配置文件里面,也未必要用存储过程,
greatverve 2008-12-01
  • 打赏
  • 举报
回复
楼主提问很实在,像我,呵呵。
用存储过程确实有很多事情需要处理,比如你得改数据库,如果用户已经使用了,
如果你不直接操作数据库,只能用覆盖的方法,那么用存储过程是很麻烦的。
由于我写的程序,一般是业务逻辑复杂,很多时候不用存储过程无法实现,
所以不得不用,一般的增删改查,直接用sql语句就行了,注意用参数形式的,
防止注入。
fuzhenyu999999 2008-12-01
  • 打赏
  • 举报
回复
Fus371x 2008-12-01
  • 打赏
  • 举报
回复
用存储过程的好,要修改sql语句时,如果sql语句写在程序里,就得改程序,得重新编译.如果采用存储过程,则只要修改对应的存储过程即可.
在数据访问量大,而且访问次数多时,使用存储过程还有速度上的优势.
存储过程较一般的sql语句还有安全上的优势等等.
  • 打赏
  • 举报
回复
在用ado.net访问数据库的时候,你可以把sql语句直接作为cmd参数,
也可以把sql语句保存成存储过程存在数据库中,然后用cmd调用这个存储过程的名字,两个方法都行
但是我不明白,这两个方法的利弊.

答:前面两个效率上基本一样的,你写成了存储过程,要按存储过程调用,需要指定sql是存储过程,否则就是sql,效率前者要高很多。这个上周五正好做了个测试,测到这个区别了。

还有如果是把SQL语句写在程序中,那么将来我发布程序以后,感觉要修改SQL语句,那么我就直接在程序中修个
让后将修改好的C#程序发布就好了,那如果我是写成存储过程保存在数据库中,那要如何更新?

答:把sql写在程序代码里的做法不推荐,修改一个sql语句导致要发布整个程序,这是很危险的,也很烂,但去修改一个存储过程,风险就小多了。而且发布起来也简单,不需要停止程序,只需把对应的存储过程alter就 可以了。
kingcsx666 2008-12-01
  • 打赏
  • 举报
回复
理论上面说存储过程好,

但也不一定都用存储过程,写起来麻烦,每个表都对应几个存储过程,一千个表还了得啊

看情况用

存储过程,直接都数据库里面修改啦,还方便点

111,131

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧