zoukankan      html  css  js  c++  java
  • MSSQL删除字段时出现 服务器: 消息 5074,级别 16,状态 1,行 1 的解决办法

    有的朋友在做用户维护字段的界面时,肯定发现一个问题,当用脚本:
    ALTER TABLE 表名 DROP COLUMN 字段名
    进行删除字段的操作时,会出现“服务器: 消息 5074,级别 16,状态 1,行 1 ”的错误,这是因为字段有了默认值,不过可以通过清除掉默认值的存储过程来进行这个操作,但如果在删除字段前,强行运行
    sp_unbindefault '表名.字段名'
    这样的操作,如果字段没有默认值,却会产生一个异常,虽然不会影响操作的结果,但这样会让用户摸不着头脑。
    为了解决这个矛盾的问题,有一个办法:先检查字段是否绑定有默认值,如果有的话才运行sp_unbindefault '表名.字段名',否则不运行,这样就不会出现错误提示的尴尬局面。
    检查的方法是:
    SELECT syscolumns.cdefault
    FROM sysobjects LEFT OUTER JOIN
    syscolumns ON syscolumns.id = sysobjects.id
    WHERE (sysobjects.name = '表名') AND (syscolumns.name = '字段名')
    如果cdefault<>0则表示没有默认值,需要运行sp_unbindefault '表名.字段名',反之则不需要。
  • 相关阅读:
    委托、事件入门(转)
    ArcToolBox——Clip 批量处理
    Geometry 对象浅析 ( 作者:Flyingis)
    AE数据加载
    ADO.NET 的最佳实践技巧(转)
    android调用.net wcf 服的方法
    winform调用dos命令
    变位词实现 编程珠玑一处错误
    元素翻转
    80X86学习笔记转移指令
  • 原文地址:https://www.cnblogs.com/jiangqw/p/3470044.html
Copyright © 2011-2022 走看看