zoukankan      html  css  js  c++  java
  • SQL Server数据库中使用sql脚本删除指定表的列

    在SQL Server数据库中删除某一列,使用数据库管理工具直接可视化操作是很简单的,但是如果要用sql脚本呢?可能你会说很简单,直接用
    ALTER TABLE [要删除的字段所在的表名]
    DROP COLUMN [要删除的字段];
    GO
    这样不就OK了吗?


    可是如果这个字段上要是有约束的话呢,就会弹出类似如下的提示:
    消息 5074,级别 16,状态 1,第 1 行
    对象'DF__***__***__682A18F4' 依赖于 列'***'。
    消息 4922,级别 16,状态 9,第 1 行
    由于一个或多个对象访问此列,ALTER TABLE DROP COLUMN ***失败。


    如何解决这个问题呢?
    首先你可以要找到该字段的约束,然后删除它
    --查询某个表的所有的字段约束
    sp_helpconstraint [要删除的字段所在的表名]


    --查询某表某字段的默认约束
    select name as 约束名
    from sysobjects 
    where id in (select cdefault 
    from syscolumns
    where name in ( [要删除的字段]) 
    and id=(select id 
    from sysobjects 

    where name = [要删除的字段所在的表名]))


    查询到约束后,就要删除约束了


    --删除字段上的约束
    ALTER TABLE  [要删除的字段所在的表名]
    DROP 约束名;

    GO


    现在再来删除你要删除的字段就没有问题了,呵呵
    ALTER TABLE [要删除的字段所在的表名]
    DROP COLUMN [要删除的字段];
    GO
  • 相关阅读:
    Linux新手随手笔记2.4-使用DHCP动态管理主机地址
    在word中输入任意角度旋转图片
    VBA注释临时
    VBA改写VBA代码
    【转载】robocopy的用法
    Excel数组排序+图片统一大小
    一键调节音量
    合并文档时让第一页为奇数
    智能跳转---TC资源管理器
    win7一键拖动生成快速启动栏
  • 原文地址:https://www.cnblogs.com/kevinGao/p/2605588.html
Copyright © 2011-2022 走看看