删除和丢弃数据库有什么区别?
删除和丢弃数据库有什么区别?
删除:DELETE 命令用于从表中删除行。可以使用 WHERE 子句仅删除某些行。如果未指定 WHERE 条件,则将删除所有行。执行 DELETE 操作后,您需要提交或回滚事务以使更改永久化或撤销它。请注意,此操作将导致在该表上的所有 DELETE 触发器都会触发。
丢弃:DROP 命令从数据库中移除一个表。表的所有行、索引和权限也将被删除。不会触发任何 DML 触发器。该操作无法回滚。
DELETE
命令会删除匹配的行,而 DROP
命令会删除整个表。我知道这是一篇旧帖子,但我自己也在寻找答案,因为我相信原帖提到的是删除数据库而不是表或内容,所以我想介入一下。
两种方式都可以删除数据库,但如果你想要完全删除数据库和相关的工件,可能需要多个步骤。
如果你正在使用SQL Server管理工具,你可以右键单击数据库并选择删除来删除数据库。结果对话框提供了几个复选框:
如果你不打勾'删除备份和还原历史信息',那些文件将保留在服务器上,除非你手动摆脱它们。 ‘关闭现有连接’是一个好主意,否则你可能会收到一个错误,告诉你数据库仍然在使用中(即使只是你在尝试删除它时)
单独使用SQL命令'DROP'并不能删除所有东西。你仍然需要删除备份历史记录,并将数据库设置为“单用户模式”,否则它可能会像上面那样抱怨数据库仍在使用中。
--Remove backup history
EXEC msdb.dbo.sp_delete_database_backuphistory @database_name = N'YourDBName'
GO
USE [master]
GO
--close all the open connections to your database
ALTER DATABASE [YourDBName] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
USE [master]
GO
--remove the actual database
DROP DATABASE [YourDBName]
GO
删除操作会移除内容并删除数据库的结构。
Delete会删除表格的内容。Drop会删除表格的内容和结构。Delete可以被回滚,但Drop不能被回滚。
表
,则应使用以下命令:DROP
命令会将整个表及其相关对象从目录中删除,需要您从头开始创建所有索引和约束。
插入一个函数,可以物理删除特定的表或列。 表结构保持不变。 如果您想查看结构,可以编写此代码 desc tablename; 删除表或列功能永久删除表或列,以及表的结构。