SQL Server数据库中使用sql脚本删除指定表的列
生活随笔
收集整理的這篇文章主要介紹了
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?
ALTER TABLE ?[要刪除的字段所在的表名]
DROP 約束名;
ALTER TABLE [要刪除的字段所在的表名]
DROP COLUMN [要刪除的字段];
GO
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
轉載于:https://www.cnblogs.com/kevinGao/archive/2012/07/16/2605588.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的SQL Server数据库中使用sql脚本删除指定表的列的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Bitmap之位图采样和内存计算详解
- 下一篇: linux cmake编译源码,linu