SQL 删除一个字段

说白了,删除字段其实很简单,但细节中却隐藏着一些陷阱。

首先我来说说最重要的事情。
编写SQL时,表名和字段名不能用引号括起来,否则会报错。
比如 ALTER TABLE Person DROP COLUMN Birthday 可以直接输入,但是 ALTER TABLE "Person" DROP COLUMN "Birthday" 肯定不行——我一开始以为引号可以增加可读性,后来发现数据库根本不识别。
去年我们跑那个项目的时候,整个团队就因为这个耽误了半天时间。
其次,在删除字段之前,需要确认表中没有脏数据。
例如,如果某个字段是主键并且与其他表关联,则直接删除它会产生错误。
去年,我们处理了一个3 000条大小的数据表。
由于我们没有检查相关约束,所以硬删除卡住了两个小时。
还有一个主要细节。
例如,MySQL 使用 DROP COLUMN COLUMN_NAME,但 SQL Server 会编写 ALTER TABLE TABLE_NAME DROP COLUMN COLUMN_NAME。
这取决于具体数据库的语法。

等一下,还有一件事,如果该字段有索引,那么直接删除该字段将会丢失索引。
起初,我认为索引可以单独处理,但后来我了解到数据库会为你打包和移动 - 老实说,这是一个很大的技巧。

在操作DESCRIBE TABLE_NAME之前要查看字段结构,特别是字段类型和关系推荐使用。
很多人不重视这一点。
你怎么认为?

sql语句删除某个字段的部分数据

这是一个坑。
不要这样做。

直接在 UPDATE 语句中嵌套函数调用效率很低。
不要相信网络上的错误观念。

使用临时变量来分配然后更新值。
这是 2 008 SQL Server 性能指南所建议的。

实用提醒:测试执行计划,差别巨大。

SQL 删除一个字段

ALTER TABLE aaa COLUMN NAME 语法错误。

某些数据库不允许 DROP COLUMN。

使用 ALTER COLUMN 更改类型。
例如:2 001 年,删除某数据库,表People,Birth列。

执行后,该列就没有了。

扩展信息:使用 ALTER COLUMN 更改类型。

sp_rename 重命名。

Sp_help查找表信息。
判断该字段是否存在。

SQL?删除一个字段

直接删除列:某些数据库不支持此操作。
要更改字段的类型:使用 ALTER TABLE 更改列。
重命名列:SQL Server 使用 sp_rename。
要查看文件信息:使用 sp_help。
确认该字段存在:检查 INFORMATION_SCHEMA.COLUMNS。
间接删除列:创建新表、复制数据、重命名。