关于事务的问题? 急急急。

jcaomao 2003-05-11 09:23:20
我有两个表,一个记录比较少,另一个大概有100万条记录左右。
下再出现一个问题,我的程序是通过ado.net连结到数据库的,程序中操作那个小点的表一点问题都没有,可是操作那个大表,如:delete 或 update,我的程序中也没有提示错误,但是我在查询分析器中检查,这些命令根本就不起作用。后来我用同样的语句载查询分析器里执行,也没有问题,这是怎么回事啊?

是不是和事务有关系,我在ado中怎么写这个字符串阿?
...全文
27 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
jcaomao 2003-05-11
我发现了一个问题,insert和select 不会超时,但delete不管怎么设都是超时
回复
jcaomao 2003-05-11
我试了,加上commit也不行。
string sqlstr="delete from page where state='1' go commit go"
回复
jcaomao 2003-05-11
这次总是出现服务器超时,应该是记录太多了,但是
string con="user id=aaa;password=aaa;initial catalog=aaa;data source=aaa;Connect Timeout=240";

我都设成240秒了,可是好像20秒左右就断了,怎么回事啊?
回复
pengdali 2003-05-11
就是删除和更新语句并没有改变表的记录
如:删除page表中 state字段 等于1的所有记录。
string sqlstr="delete from page where state='1'";
SqlCommand accesscommand=new SqlCommand(sqlstr,con);
accesscommand.ExecuteNonQuery();
执行时程序也没有报错,并且执行了很长时间,但是表里还有这些记录阿,没有删除掉。


你这样写:

delete .....
commit ----这句加上
回复
pengdali 2003-05-11
在查询分析器里执行一下:
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
看结果,如果还会出现

就执行这个:
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
回复
jcaomao 2003-05-11
用企业管理器打开表,没有问题阿。

to:“这些命令根本就不起作用,是什么意思?“

就是删除和更新语句并没有改变表的记录
如:删除page表中 state字段 等于1的所有记录。
string sqlstr="delete from page where state='1'";
SqlCommand accesscommand=new SqlCommand(sqlstr,con);
accesscommand.ExecuteNonQuery();
执行时程序也没有报错,并且执行了很长时间,但是表里还有这些记录阿,没有删除掉。



回复
CrazyFor 2003-05-11
检查你的语句,是语句的问题。
回复
pengdali 2003-05-11
这些命令根本就不起作用

是什么意思?

你用企业管理器打开表,会出现什么现象?
回复
相关推荐
发帖
MS-SQL Server
创建于2007-09-28

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2003-05-11 09:23
社区公告
暂无公告