表结构不能被修改
现在我们公司的数据库表结构修改时出现了很奇怪现象:新增字段时可以,如将现有字段允许为空,更改为不允许为空(表中所有数据都不为空),或将字段序号从1更改其他的序号等就会出现诸如:某表
- 无法修改表。
无效事务状态: [Microsoft][ODBC SQL Server Driver][SQL Server]The COMMIT TRANSACTION request has no corresponding BEGIN TRANSACTION.”提示错误,请问这是什么问题,如何解决,多谢了!!!
------解决方案--------------------在这之前你们做过什么大的操作没有呢?
------解决方案--------------------alter table t with nocheck add col int not null default(1)--新增列不为null,如果列已经有数据,指定默认值
或在企业管理里—设计表—添加列
------解决方案--------------------关注这个问题!!
------解决方案--------------------如果表中已经有数据,并且其值已经为NULL,那么你把这个有NULL值得字段该为不允许为NULL,那就会出错。
至于修改表字段的序号....呵呵,没有试过,不知道能不能行。
但是,为什么要修改字段的序号呢?
一个字段在第一位和在最后一位并没有什么太大的影响....
如果实在要调整字段,把现在表中的数据按新的字段dump到一个文本文件中,
重建一个新表,
把数据装回去就可以了。
不知道还有没有更有效的方法
------解决方案--------------------新增字段时可以,如将现有字段允许为空,更改为不允许为空(表中所有数据都不为空),或将字段序号从1更改其他的序号等就会出现诸如:某表 - 无法修改表。
这个问题看来是权限的问题了,
新增字段只需要Alter Table即可
可以要允许为空或者调整栏位顺序是需要先drop后新建表的,
LZ在企业管理器中修改这个东西的时候,可以点击上面菜单栏里面的脚本按钮,看看生成的语句是不是这样