如何使用值在Microsoft SQL Server中删除COLUMN?

时间:2015-09-13 10:52:24

标签: sql sql-server alter

代码:

ALTER TABLE tblUser
DROP COLUMN Mobile

错误:

  

ALTER TABLE DROP COLUMN移动设备失败,因为一个或多个对象访问此列。

此列具有表中的值。如何删除访问此列的所有对象?

我如何DROP COLUMN有价值观?

如何用代码完成?如何自动删除列中的所有约束?

4 个答案:

答案 0 :(得分:1)

SQL Search是一个很棒的工具。我将搜索所有使用目标对象的对象。

您可以轻松找到列的使用位置,然后您也可以修改或删除这些对象。

答案 1 :(得分:1)

使用以下查询查找特定表名

的约束名称
 .listing-table table th {
    text-transform: uppercase;
    font-size: 12px;}

.listing-table table th:first-letter {
    font-size: 15px;
    font-weight: bold; }

Noe您可以在constraint_name列下看到约束名称,使用以下语法删除所有约束

  SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE TABLE_NAME = 'TABLENAME'

之后,您可以使用以下语句删除列

  ALTER TABLE TABLENAME DROP CONSTRAINT CONSTRATINTSNAME 

答案 2 :(得分:1)

ALTER TABLE DROP COLUMN Mobile failed because one or more objects access this column.

您的专栏不会被删除。因为要从此列中删除一列或多列的引用。

首先,您必须在下面的查询中找到您的列被引用到哪个表中。

SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE TABLE_NAME = 'TABLENAME'

它将显示当前数据库的所有表的所有约束。您需要找到它并删除约束。之后,您的列将被成功删除,因为任何表中都没有您的列的引用。

要从列中删除约束 - 请使用以下查询

alter table tablename
drop constraint constraintid

答案 3 :(得分:0)

您需要知道这些约束是什么以及它们的名称是什么以便放弃它们; SQL Server中没有任何内容可以说DROP ALL CONSTRAINTS并且只是这样做。 - 昨天marc_s