alter proc ProductSearch
(
@type nvarchar(50),
@KeyWord nvarchar(255)
)
as
EXEC('select *,bookcost*bookRebate as Nowcost from book where '+ @type+' like ''%'+ @KeyWord+'%''')
go
为什么存储过程要用EXEC
什么情况下才用EXEC
说明理由 重分奖赏 顶者1分
(
@type nvarchar(50),
@KeyWord nvarchar(255)
)
as
EXEC('select *,bookcost*bookRebate as Nowcost from book where '+ @type+' like ''%'+ @KeyWord+'%''')
go
为什么存储过程要用EXEC
什么情况下才用EXEC
说明理由 重分奖赏 顶者1分
也就是常说的
动态sql的时候
用exec
有人说 只有当字段传进来的时候才要用exec 不是字段 加布加 都一样 请弄清我的问题 然后回答
可以这么说,就是每次查询结果可能会由于表中的数据集情况而产生不同的结果。
而传不传参数要看你SQL怎么写的了
执行字符串的时候用EXEC
执行存储过程的时候用EXEC
存储过程也可exec 存储过程名 参数 调用。
语法使然规则而已。
2. 什么情况下才用EXEC ?
非动态不能解决的时候 引用2楼水哥这个经典。
执行参数化查询(当from是某个对象是参数时..)