日期:2014-05-18 浏览次数:20578 次
CREATE TABLE Course ( Cno CHAR(10) PRIMARY KEY, Cname VARCHAR(20) NOT NULL, Periods SMALLINT CHECK(Periods>0), Property CHAR(4) CHECK(Property in('必修','选修')) )
--创建表 CREATE TABLE Course1 ( Cno CHAR(10) PRIMARY KEY, Cname VARCHAR(20) NOT NULL, Periods SMALLINT CHECK(Periods>0), Property CHAR(4) CHECK(Property in('必修','选修')) ) --执行删除列失败 ALTER TABLE Course1 ALTER COLUMN Periods TINYINT /* Msg 5074, Level 16, State 1, Line 1 The object 'CK__Course1__Periods__64ECEE3F' is dependent on column 'Periods'. Msg 4922, Level 16, State 9, Line 1 ALTER TABLE ALTER COLUMN Periods failed because one or more objects access this column. */ --删除这个约束 alter table Course1 drop constraint CK__Course1__Periods__64ECEE3F --重新执行删除列成功 ALTER TABLE Course1 ALTER COLUMN Periods TINYINT
------解决方案--------------------
--对于你的情况来说,这样就可以了。 --删除这个约束 alter table Course drop constraint CK__Course__Periods__0DAFOCB0 --不确定里面是0还是O。 --重新执行删除列成功 ALTER TABLE Course ALTER COLUMN Periods TINYINT
------解决方案--------------------
if object_id('tb') is not null drop table tb go create table tb ( id int, name varchar(10), age int check(age>10) ) go --修改出错 alter table tb alter column age varchar(10) /* 消息 5074,级别 16,状态 1,第 1 行 对象'CK__tb__age__08012052' 依赖于 列'age'。 消息 4922,级别 16,状态 9,第 1 行 由于一个或多个对象访问此列,ALTER TABLE ALTER COLUMN age 失败。 */ --先删除约束CK__tb__age__08012052 alter table tb drop constraint CK__tb__age__08012052 go --再执行修改字段 alter table tb alter column age varchar(10)
------解决方案--------------------
把约束先干掉
------解决方案--------------------
既然是报错有依赖项 就是被约束了 找出约束删除就木问题叻
------解决方案--------------------
修改也是一样 先去掉约束 再修改
------解决方案--------------------
可以先禁用约束 再修改
------解决方案--------------------