在存储过程中使用@sql拼接sql语句,然后exec (@sql),这样的效果和在程序里写sql语句然后再执行数据库操作有啥区别 自己觉得这样的话,速度上并不会很快 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1.存储过程是在DB Server执行的,如果逻辑很多,会消耗DB Server的资源。2.相对语句在程序里生成,可以节省传输成本,不需要传输很长穿的SQL语句。3.最简单的说,sql语句的字符串,一个是占用用程序的空间,另一个是占用数据库资源。 谢谢各位的指点现在的存储过程大致上是这样的:create proc sp1 @con1,@con2,@con3asdeclare @sqlset @sql='......'if @con1='..' set @sql='......' + '...' --并不涉及查询其他tableelse set @sql='......' + '...'...exec(@sql)如果就像上面这样,大家觉得那种方式更好一种避免了大字符串在网络上的传输,同时让数据库负责拼接和查询工作一种是在程序里运行拼接sql的操作,然后传送sql字符串到数据库,让数据库只负责查询的工作 数据库中处理逻辑问题的确没程序中快,但是存储过程本身是预编译的,可以直接执行,如果里面都是动态Sql那存储过程就失去这个优势了,你还不如直接传T-Sql进来,更方便更灵活所以不建议这种用法 有时必须用动态sql的,比如按不同的条件生成临时表。不用动态好象不好实现吧。当然了,能不用就不用,效率一定是低的。 分页存储过程问题 关于查询语句的问题? 让初级的操作员经常性的最快捷的执行DTS包的方法是什么? sqlserver获取纪录最后修改时间 tds 缓冲区长度过大 如何解决? 英文版的SQL SERVER 7.0 是否支持汉字字符的保存? 在SQL_SERVER中,数值0.34会自动变成.34,将零给去掉了,不知如何能加上? 请教多用户访问数据性能下降问题??? delphi怎么连接sql server? 求SQL一列的总和 思维混乱,请大家帮忙。连接查询,怎么办怎么办? 着急啊!!!数据库还原问题
2.相对语句在程序里生成,可以节省传输成本,不需要传输很长穿的SQL语句。
3.最简单的说,sql语句的字符串,一个是占用用程序的空间,另一个是占用数据库资源。
create proc sp1 @con1,@con2,@con3
as
declare @sql
set @sql='......'if @con1='..'
set @sql='......' + '...' --并不涉及查询其他table
else
set @sql='......' + '...'
...exec(@sql)如果就像上面这样,大家觉得那种方式更好
一种避免了大字符串在网络上的传输,同时让数据库负责拼接和查询工作
一种是在程序里运行拼接sql的操作,然后传送sql字符串到数据库,让数据库只负责查询的工作
当然了,能不用就不用,效率一定是低的。