首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

一个关于事务的有关问题。大家帮忙解释一下

2012-03-09 
一个关于事务的问题。大家帮忙解释一下表结构:CREATETABLE[dbo].[t1]([id][int]NOTNULL,[value][int]NULL,C

一个关于事务的问题。大家帮忙解释一下
表结构:
CREATE   TABLE   [dbo].[t1](
[id]   [int]   NOT   NULL,
[value]   [int]   NULL,
  CONSTRAINT   [PK_t1]   PRIMARY   KEY   CLUSTERED  
(
[id]   ASC
)WITH   (IGNORE_DUP_KEY   =   OFF)   ON   [PRIMARY]
)   ON   [PRIMARY]

测试一:
BEGIN   TRANSACTION  
  insert   into   t1(id,value)values(2, '1 ')
  insert   into   t1(id,value)values(2, '1 ')
commit   TRANSACTION  
结果:
select   *   from   t1
id   value
2       1
问题:
为什么还能插入一条记录呢?

测试二:
BEGIN   TRANSACTION  
insert   into   t1(id,value)values(2, '1 ')
insert   into   t1(id,value1)values(2, '1 ')     --表中没有value1字段
commit   TRANSACTION  
结果:
select   *   from   t1
id   value
问题:
为什么没有插入记录?

测试三:
BEGIN   TRANSACTION  
insert   into   t1(id,value)values(2, '1 ')
select   id,value1   from   t1       --表中没有value1字段
commit   TRANSACTION  
结果:
select   *   from   t1
id   value
问题:
为什么没有出入记录?

测试四:
BEGIN   TRANSACTION  
insert   into   t1(id,value)values(2, '1 ')
select   *   from     bb       --bb表不存在
commit   TRANSACTION   结果:
select   *   from   t1
id   value
2       1
问题:
为什么会茶入记录?




[解决办法]
另外,LZ在做这些事务的时候,set xact_abort的状态是什么呢。

热点排行