一杯清茶

          統計

          留言簿

          Oracle SQL/PLSQL

          PowerDesigner教程系列

          Struts2.0

          web開發

          三人行

          從事RCP開發的同行

          工作流和權限設置

          閱讀排行榜

          評論排行榜

          修改SQL數據庫中表字段類型時,報“一個或多個對象訪問此列”錯誤的解決方法

          轉自:
          http://www.cnblogs.com/coloeme/archive/2010/03/09/1681201.html

          在SQL數據庫中使用SQL語句(格式:alter table [tablename] alter column [colname] [newDataType])修改某表的字段類型時,報一下錯誤:

          “**********************************

          對象'DF__******' 依賴于 列'column1'。
          ***********************************
          由于一個或多個對象訪問此列,ALTER TABLE ******** 失敗。”

            根據上述提示在網上搜索結果,得知發生該錯誤的原因在于要修改的字段存在Default約束,解決方法:

          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)

          3. 再執行修改字段類型的腳本即可

            綜合查閱資料發現:將表中的字段設置為NOT NULL(不為空)、給字段增加Default值(默認值)這樣的操作都會給該字段添加約束,增加了這些約束后,在用SQL腳本修改字段類型、刪除字段的時候均會發生類似錯誤,需要查找該字段上已存在的約束,并刪除存在的約束,再次執行修改/刪除腳本即可。

            資料引用:

            1. 修改字段類型時出現的 依賴于 列Classinfo_ShowType,因為有一個或多個對象訪問此列(鄒建請進)

            2. 由于一個或多個對象訪問此列錯誤的解決辦法

            3. SQL Server】sql語句刪除表的有默認值的列

            4. Alter Table修改表結構的錯誤及解決方法

          posted on 2011-06-13 14:52 一杯清茶 閱讀(2690) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 东乌珠穆沁旗| 繁峙县| 姚安县| 涿鹿县| 砚山县| 阳信县| 天水市| 曲靖市| 汾阳市| 石台县| 廉江市| 丰都县| 定日县| 磴口县| 休宁县| 巫山县| 潢川县| 肇庆市| 泰顺县| 新巴尔虎右旗| 绵阳市| 吴川市| 廉江市| 伊春市| 肇源县| 阿克陶县| 弋阳县| 镇沅| 黔江区| 尚志市| 浪卡子县| 博爱县| 彰化县| 施秉县| 盖州市| 札达县| 吉隆县| 乌鲁木齐市| 惠州市| 丹棱县| 芦山县|