日期:2014-05-17  浏览次数:20551 次

怎么样动态传参数到存储过程?
比如有个存储过程, 类似如下的更新语句
create procedure PPP 
@XX varchar(32),
@XXX varchar(32),
……
as
update TA set
XX=XX
XXX=XXX
……
……
where ……

里面的字段(XX和XXX)我想在程序里动态传入。有时候只有XX,有时候只有XXX,有时候两个都有……
该怎么弄?

------解决方案--------------------
1、存储过程参数增加默认值
create procedure PPP 
@XX varchar(32) = null,
@XXX varchar(32) = null,
……
as

2、存储过程中队默认何不默认要有特殊处理(代码就略了)
3、程序调用采取以下方式 
exec ppp @xx = ...,@xxx = ...
exec ppp @xx = ...
exec ppp @xxx = ...
exec ppp 
------解决方案--------------------
引用:
比如有个存储过程, 类似如下的更新语句
create procedure PPP 
@XX varchar(32),
@XXX varchar(32),
……
as
update TA set
XX=XX
XXX=XXX
……
……
where ……

里面的字段(XX和XXX)我想在程序里动态传入。有时候只有XX,有时候只有XXX,有时候两个都有……
该怎么弄? 
……


可以这样:
传参的时候每个参数都传,用不到的就传个空值,然后在过程里用if语句判断处理就可以了


------解决方案--------------------
引用:
引用:比如有个存储过程, 类似如下的更新语句
create procedure PPP 
@XX varchar(32),
@XXX varchar(32),
……
as
update TA set
XX=XX
XXX=XXX
……
……
where ……

里面的字段(XX和XXX)我想在程序里动态传入。有时候只有XX……


我也是这么认为的:传参的时候每个参数都传,用不到的就传个空值,然后在过程里用if语句判断处理就可以了