综合百科

数据库中删除表字段的sql语句有哪些

删除表字段的sql语句有哪些?

删除表字段的sql语句有:

1.删除没有默认值的列:

altertableTestdropcolumnBazaarType

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.

ALTERTABLE表名ADD字段名INTDEFAULT(0)NOTNULL;

修改主键字段类型

altertable[tablename]altercolumn[colname][newDataType])

修改某表的字段类型时,会报错是因为存在约束。

a。 将表中的字段设置为NOT NULL(不为空)、给字段增加Default值(默认值)这样的操作都会给该字段添加约束,增加了这些约束后,在用SQL脚本修改字段类型、删除字段的时候均会发生类似错误.

b.查找该字段上已存在的约束,并删除存在的约束.

c.再次执行修改/删除脚本即可。

解决方法:

1.查找出表中该字段的约束名称(或根据已有的提示及对象'DF__******')

declare@namevarchar(50)select@name=b.namefromsysobjectsbjoinsyscolumnsaonb.id=a.cdefaultwherea.id=object_id('TableName')anda.name='ColumName'

2. 删除存在的约束

exec('altertableTableNamedropconstraint'+@name)

例如:exec('alter table T_tableName drop constraint 报错信息的约束名' )

3. 再执行修改字段类型的脚本即可

altertabledbo.T_tableNamealtercolumnIdBIGINTnotNULLaltertabledbo.T_tableNameaddconstraintPK_Idprimarykey(Id)