数据库中关于存储过程使用的有关问题
数据库中关于存储过程使用的问题
现在有这样的需求:WMS的物料管理,使用查询的有两种情景,一是在物料查询(模糊查询),若干个条件,有的为空有的非空,我是用的是
------解决思路----------------------
你都放到存储过程了,就发挥存储过程里批处理的功能吧
1、判断参数为空就不带入查询,而不要带入那种全部都会为TRUE的查询条件,虽然效果一样,但速度会有影响。
2、同上,建议写到同一个存储过程了,程序方便调用,如果两种查询方式有很大类似,这样也不会冗余代码,而且能够抗变。
------解决思路----------------------
你存储过程弄两个参数, 一个是条件 一个是标志位 代表用哪个参数查就拼接查询就完了
比如: @strWhere nvarchar(100), @strFlag char(10)
现在有这样的需求:WMS的物料管理,使用查询的有两种情景,一是在物料查询(模糊查询),若干个条件,有的为空有的非空,我是用的是
字段 LIKE '%' + ISNULL(@字段 , '') + '%',还有一种就是等值查询,给出物料编码或者其他字段,取结果集。这种情况下是使用一个查询过程,加一个参数,标记查询类型,还是写到两个不同的存储过程里面,哪种方式处理更好呢
------解决思路----------------------
你都放到存储过程了,就发挥存储过程里批处理的功能吧
1、判断参数为空就不带入查询,而不要带入那种全部都会为TRUE的查询条件,虽然效果一样,但速度会有影响。
2、同上,建议写到同一个存储过程了,程序方便调用,如果两种查询方式有很大类似,这样也不会冗余代码,而且能够抗变。
------解决思路----------------------
你存储过程弄两个参数, 一个是条件 一个是标志位 代表用哪个参数查就拼接查询就完了
比如: @strWhere nvarchar(100), @strFlag char(10)