删除表中⼀个字段的SQL语句
1.删除没有的列:
alter table Test drop COLUMN BazaarType
2.删除有的列:
先删除约束()alter table Test DROP CONSTRAINT DF__Test__BazaarType__3C4ACB5F
(alter table Test DROP COLUMN BazaarType 提⽰报错就是 DF__SheetTest__Attac__0F8D3381)
然后在删除列 alter table Test DROP COLUMN BazaarType
3.ALTER TABLE 表名 ADD 字段名 INT DEFAULT (0) NOT NULL;
修改主键字段类型
alter table [tablename] alter column [colname] [newDataType])修改某表的字段类型时,会报错是因为存在约束。
a。将表中的字段设置为NOT NULL(不为空)、给字段增加Default值(默认值)这样的操作都会给该字段添加约束,增加了这些约束后,在⽤SQL脚本修改字段类型、删除字段的时候均会发⽣类似错误.
b.查该字段上已存在的约束,并删除存在的约束.
c.再次执⾏修改/删除脚本即可。
解决⽅法:
1.查出表中该字段的约束名称(或根据已有的提⽰及对象'DF__******')
sql语句替换表中内容declare @name varchar(50)
select @name =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 ' + @name)
例如:exec('alter table T_tableName drop constraint 报错信息的约束名' )
3. 再执⾏修改字段类型的脚本即可
alter table dbo.T_tableName alter column Id BIGINT not NULL
alter table dbo.T_tableName add constraint PK_Id primary key(Id)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论