列如我想创建50个表,表名为:MyTab1,MyTab2...MyTab50,然后在各表中插入5000条记录。可不可以通过一个事务实现?我写成下面的语句,可事务回滚没有效果,表仍然被创建了。请问怎么回事情?问题问的不贴切请见凉.
DBConnection.BeginTrans
for i=1 to 50
TabName="MyTab" & i
DBConnection.Execute("create table " & TabName & "(ID INTEGER)")
for j=1 to 5000
DBConnection.Execute("insert into " & TabName & "values(" & j & ")")
next j
next i
DBConnection.RollbackTrans '我专门为了实验回滚,所以在此没有写成提交
DBConnection.BeginTrans
for i=1 to 50
TabName="MyTab" & i
DBConnection.Execute("create table " & TabName & "(ID INTEGER)")
for j=1 to 5000
DBConnection.Execute("insert into " & TabName & "values(" & j & ")")
next j
next i
DBConnection.RollbackTrans '我专门为了实验回滚,所以在此没有写成提交
不知道,能不能限制DDL自动提交事务?我想这个建表事务在碰到程序中显式的"commit"语句再提交.
还有几个问题想问清楚点,还请sozdream,sasacat(傻傻猫),xiaoxiao1984(笨猫一只^_^) 等各位朋友指教:1,在一个事务中执行的DML语句的数目很多(假设应用中确实需要这样做),DBMS能否正确处理的了。
2,如果在一个事务中执行某个表的很多条插入语句,且该表中有BLOB字段(我这儿用BLOB保存OS上图片和文档文件),请问假如我将5-6G左右的BLOB数据用一个事务插入到表的话,DBMS能否正确处理,即碰到CommitTrans将这些数据真正的提交到数据库,碰到RollBackTrans则回滚,放弃数据的插入?还请大家帮忙解答,尤其是第2个问题。谢谢了