关于存储过程与触发器的问题

SAM2002 2003-08-19 07:10:05
1。在存储过程中删除某张表时,drop table "表名",如果我用一个变量代替这个表名,语法验证通不过,请问drop table "表名"这个表名是否必需为常量。有没有其它方式实现。


2。在触发器中包含多条删除与插入语句,如果触发器部份语名执行成功,那么触发器与产生触发器工作的事件,是否在一个事务中;如果触发器部份成功,那它是否会回滚所有的操作(触发器中的所有操作与事件本身)。
...全文
41 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
kalven_chan 2003-08-20
  • 打赏
  • 举报
回复
1、 这样变动的语句就是动态sql了,不能直接执行的,大致如下(假设传入的表为a_table)

declare dyna_sql varchar(255)
select dyna_sql = 'drop table '+ a_table
excute dyna_sql
2、这就是你如何设置你的事务了。sybase中的触发器一般不设置begin tran的,那就是这么多语句用的是同一个事务,如果有部分执行失败了,那么所有该事务内的数据都会保存失败。

2,596

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧