Alter Table修改表结构的错误及解决方法
发布时间:2020-12-12 12:36:34 所属栏目:MsSql教程 来源:网络整理
导读:SQL Server帮助文档中,Alter Table对表结构的修改命令,很多都会出现错误,下面特针对此常见错误做出详细说明,文章中有引用Leo的方法例题 代码 一、为标识列添加默认值 下面的示例将修改 CompanyName 列,使其具有默认值: ALTER TABLE MyCustomers ADD DEF
SQL Server帮助文档中,Alter Table对表结构的修改命令,很多都会出现错误,下面特针对此常见错误做出详细说明,文章中有引用Leo的方法例题 代码 一、为标识列添加默认值 下面的示例将修改 CompanyName 列,使其具有默认值: ALTER TABLE MyCustomers ADD DEFAULT 'Datum Corporation' FOR [CompanyName] 二、如果设置了该列的默认值,那么再对该列结构作修改操作,都将引发错误(如删除或修改该列的默认值等) 如执行:alter table TableName drop column ColumnName语句时就会报错,如下, “消息 5074,级别 16,状态 1,第 1 行 对象'DF__Tb_SalaryPar__aa__7DB89C09' 依赖于 列'aa'。 消息 4922,级别 16,状态 9,第 1 行 由于一个或多个对象访问此列,ALTER TABLE DROP COLUMN aa 失败。” 因为存在了default约束,此时我们需要做的: 1.查找出表中该列的约束名称 declare @conName varchar(50) select @conName =b.name from sysobjects b join syscolumns a on b.id = a.cdefault where a.id = object_id('TableName') and a.name ='ColumName' 2. 删除约束删除该列 即可 exec('alter table TableName drop constraint ' + @conName) exec('alter table TableName drop column ColumName') 三、其它操作 向表中增加一个address字段: ALTER TABLE distributors ADD COLUMN [address] varchar(30) 从表中删除一个字段: ALTER TABLE distributors DROP COLUMN [address] RESTRICT 在一个操作中修改两个现有字段的类型: ALTER TABLE distributors ALTER COMUMN [address] varchar(20) 给一个字段增加一个非空约束: ALTER TABLE distributors ALTER COLUMN [address] varchar(80) NOT NULL (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |