删除MS SQL Server中的列
如何删除现有表格中的列?
你正在寻找的命令是:
alter table tblName drop column columnName
其中tblName
是表的名称, columnName
是列的名称,但有一些事情可能需要先做。
- 如果有任何外键引用的列,你需要先摆脱它们。
- 如果有索引使用该列,则需要删除该列或将其调整为不使用该列。
请记住,这个命令的执行可能不一定是好的。 一种select是等待一个停顿时间,当你可以确定没有人会访问数据库,重命名当前表,然后使用create table
并insert into ... select from
从而转移你不需要的列想要删除。
其中一个较晚版本的Oracle实际上有一个软删除,可以将一个列标记为未使用而不需要物理删除。 它具有相同的效果,因为你不能再引用它,并且沿着alter table ... drop unused columns
的命令有一个命令alter table ... drop unused columns
,这意味着要在安静的时间运行,这实际上是在实际上将其删除。
这具有立即“消失”列的优点,而不会在繁忙时间拖拽数据库性能。
ALTER TABLE XXX DROP COLUMN YYY;
对于大型表格,这可能非常缓慢。 创build一个新的表格,旧的表格的副本,但是更改并插入数据通常要快得多。 删除旧表,然后重命名新表。
这也可以通过SSMS GUI完成。
我喜欢这种方法,因为它会警告你,如果这个列上有任何关系,也可以自动删除这些。 正如PaxDiablo所说,如果有关系,他们必须先被删除。
- 在devise视图中放置表格(右键单击表格),如下所示:
- 右键单击表格“devise”视图中的列,然后单击“删除列”
此时,如果还有需要删除的关系,它会询问您是否要删除这些关系。
- SQL Server中的Group By,Having和Where子句的执行顺序是什么?
- 我可以在SQL Server的添加列语句中创build一个命名的默认约束吗?
- SQL查询以获得聚合结果在逗号分隔符以及逐列在SQL Server中
- 在SQL中减去两个date并得到结果的日子
- 用户“DOMAIN \ MACHINENAME $”login失败
- 如果目标重新启动,Service Broker消息不会被发送
- 使用存在1或存在的子查询*
- varchar和nvarchar SQL Server数据types之间的主要性能差异是什么?
- 在SQL Server Management Studio中删除记住的login名和密码列表