本地数据库:如何删除?

62

设置:使用Entity Framework Code First创建新数据库。

场景:我正在使用EF进行测试,向我的数据库添加了大量元素。然后我更改实体模型,虽然我知道可以使用迁移,但我只想从头开始,基本上清空数据库。

默认使用的数据库是(localdb)\ v11.0。

我的问题是:

我能否直接删除某个文件或启动某种管理器来删除该数据库并从头开始?


1
+1 这是一个很好且有趣的问题,可以开始使用 EF 进行工作。 - Will Marcouiller
11个回答

70

只需以管理员权限打开命令提示符并键入:

//list the instancies
sqllocaldb i

//stop selected instance
sqllocaldb p "selected instance"

//delete
sqllocaldb d "selected instance"

//recreate or create new one 
sqllocaldb c "new instance"

4
删除实例不会删除实际的数据库文件。当 EF 重新创建时,现有的 MDF 文件有时会被重用。 - MEMark
1
太棒了,谢谢。那应该是被接受的答案。关于之前的评论:那是一个叫做“文件浏览器”的程序,非常方便;-) - Anytoe

26

从Visual Studio => 点击View => SQL Server Object Explorer=> 右键单击所需的数据库并选择删除,它将被删除或者您可以按照需求进行操作。


2
你删除的是与数据库的连接,而不是数据库本身。 - Eldar

19

如果你正在使用Entity Framework Core,你可以在包管理器控制台中输入以下内容:

PM> Drop-Database

它将删除当前数据库。这个命令会告诉你哪一个:

PM> Get-DbContext

这也很方便:

PM> Get-Help about_EntityFrameworkCore

除了包管理器控制台,您还可以通过PowerShell或命令提示符使用dotnet CLI:

PS> dotnet ef database drop

请确保在运行此命令之前先安装EF扩展:

dotnet tool install --global dotnet-ef

2
这正是我正在寻找的。 - Victorio Berra

7

我认为你想删除单个数据库,而不是LocalDB实例。如果是这样的话,只需要发出"drop database"命令即可:

DROP DATABASE databasename;

您可以通过sqlcmd、Management Studio、应用程序代码,甚至是Visual Studio进行此操作...


5

有一个名为SqlLocalDB.exe的可执行文件,可以在C:\Program Files\Microsoft SQL Server\{version}\Tools\Binn中找到。

要完全删除:

>sqllocaldb stop InstanceName
>sqllocaldb delete InstanceName

完成操作后,您可以选择从硬盘中删除 .mdf 文件。

我的文件位于:C:\Users\{username}

您还可以创建一个新的实例,之后重新附加您仍然需要的 .mdf 文件。

>sqllocaldb create InstanceName
>sqllocaldb start InstanceName
>sqllocaldb info InstanceName

你可以在以下网址上查看你的实例:
C:\Users\{username}\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances

4
你可以这样做。在VS 2015/2017中按下Ctrl+Q,输入“对象资源管理器”。应该会打开“SQL Server对象资源管理器”,在那里你将看到本地DB实例。展开DB实例,你将看到不同的数据库。选择一个数据库执行右键单击,然后选择“删除”。
如需更多信息,请查看link
希望能有所帮助。

2
使用 Entity Framework Core,这也可以通过命令行完成:
dotnet ef database drop --project [path to project]

如果您有多个数据库上下文:

dotnet ef database drop --project [path to project] --context [ContextName]

请确保先安装EF扩展,通过运行此命令来完成:

dotnet tool install --global dotnet-ef

1
LocalDB是一个独立的服务器(它的名称暗示它只是其他服务器实例中的一个数据库,但事实并非如此)。在SQL Server 2014 Express中,您可以使用服务器名称“(localdb)\MSSQLLocalDB”连接到它,就像连接到任何普通的数据库服务器一样。如果您使用SQL Server Management Studio连接,则可以使用所有SSMS的功能。

0
我写了一个批处理文件来删除本地 SQL 数据库。 它使用可信连接。 如果你想的话,可以使用-U 用户名 -P 密码参数添加你的凭据。
查看sqlcmd文档

enter image description here

@echo off
set /p DbName=Enter local db name:
echo.
sqlcmd -e -S "(LocalDb)\MSSQLLocalDB" -d "master" -Q "EXEC msdb.dbo.sp_delete_database_backuphistory @database_name = N'%DbName%'; USE [master]; DROP DATABASE [%DbName%];"
echo Finished!
pause > nul

0

实体框架 3.1:

删除数据库

dotnet ef database drop

不想删除数据库,愿意删除数据库中的表。
dotnet ef database update 0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接