【问题标题】:Drop a localdb database from VS package manager从 VS 包管理器中删除 localdb 数据库
【发布时间】:2015-04-28 04:09:54
【问题描述】:

我希望能够编写一个简单的脚本来随意删除 localdb 数据库。

首先我必须通过在 VS 包管理器中运行它来停止实例以终止任何活动连接

SqlLocalDB.exe stop v11.0

然后我需要通过使用 Linqpad 或 SSMS 连接到 (localdb)\v11.0 主数据库来删除我必须做的数据库

DROP DATABASE MyDb

但我不想想要切换窗口来执行此操作,我只想编写一个脚本。我不知道如何从命令行执行第二个查询。这个我试过了

SQLCMD.EXE -s "(localdb)\v11.0" -d "master" -q "drop database MyDb"

这给了我一个错误

SQLCMD.EXE : Sqlcmd: Error: Microsoft SQL Server Native Client 11.0 : Named Pipes Provider: 
Could not open a connection to SQL Server [2]. .

【问题讨论】:

  • 你刚刚停止了实例,所以sqlcmd当然无法连接到它。
  • @ErikEJ 我相信 localdb 在您尝试连接时会启动。另外我应该澄清 all 查询(即使我不停止实例)失败并显示相同的错误消息。我一定是做错了什么
  • 您确定您使用的是“新”版本的 sqlcmd.exe?
  • @ErikEJ PM> SQLCMD.EXE -? / Microsoft (R) SQL Server Command Line Tool / Version 11.0.2100.60 NT x64。你是说我上面的东西应该有用吗?
  • 也许使用大写字母“-S”? stackoverflow.com/questions/14197802/…

标签: sql-server visual-studio scripting localdb


【解决方案1】:

如果你使用大写字母“S”,它看起来应该可以工作

SQLCMD.EXE -S "(localdb)\v11.0" -d "master" -Q "drop database MyDb"

您可能还想使用大写的“Q”,以便 sqlcmd 立即退出。

https://msdn.microsoft.com/en-us/library/ms162773.aspx

【讨论】:

  • 啊,是的,现在我可以连接了。 “用户登录失败”仍然存在问题(这很奇怪,我认为它会使用集成安全性),但这是另一个问题。
【解决方案2】:

截至 2020 年 5 月,您只需输入:

Drop-Database

在包管理器控制台中,它应该可以工作:

Are you sure you want to perform this action?
Performing the operation "Drop-Database" on target "database 'databasename' on server '(localdb)\mssqllocaldb'".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"):y

如果不起作用,您可能需要手动安装Entity Framework Core tools

【讨论】:

    猜你喜欢
    • 2014-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-04
    • 1970-01-01
    • 1970-01-01
    • 2014-10-14
    相关资源
    最近更新 更多