今天做工程时,用户提到了一个需求,要求对项目表(PM)中的项目填加删除功能,
不但要对主表删除,还要对子表1、子表2进行级联删除,在数据库没有使用级联删除约束,我用的数据库是sqlserver2005,从网上搜了几个方法,说是用
<delete id=”deleteById”>
begin
语句1;
语句2;~~~~~
end
</delete>
我一试,呵呵,果然不行,有可能在mysql中可以这样写,不知道为什么mybatis对sqlserver这么不友好,还能不能一起快乐的玩耍了;你让隔壁老王怎么看;你让对面测试MM怎么看(醒醒吧,大哥,别睡了),肿么办,时间紧,任务重,标准高,要求严;好吧,还有就是再写几个方法供在action中调用。
delete方法1;
delete方法2;
扫描二维码关注公众号,回复:
643033 查看本文章
delete方法3;
~~~~~
感觉这种方法也有点麻烦,写个存储过程吧
<delete id=”deleteById”>
exec proc(存储过程名) param1, param2~~~
</delete>
最后应该可以了吧,谁知又出现了莫名的错误,提示执行错误;纳尼,不带这么坑的吧,打印sql语句,执行没错;这是哪里的错误呢,最后仔细一看好像应该这么写吧;
<select id=”deleteById”>
exec proc(存储过程名) param1, param2~~~
</ select >
最后完美收工!