zoukankan      html  css  js  c++  java
  • 删除表中一个字段的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__******')

    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)

  • 相关阅读:
    Markdown快捷笔记
    Linux常用命令
    Git使用
    HTML
    JavaScript-笔记2
    AngularJS-笔记2
    AngularJS-笔记1
    JQuery-笔记
    设置DataGridView的某个单元格为ComboBox
    记录文件浏览历史路径
  • 原文地址:https://www.cnblogs.com/yexiaoyanzi/p/6741876.html
Copyright © 2011-2022 走看看