与运行以下命令等效的 .NET 代码是什么?
sqllocaldb c <myInstance>
Run Code Online (Sandbox Code Playgroud)
请注意,我的问题不是关于以编程方式创建 localdb数据库;而是关于如何以编程方式创建 localdb 数据库。而不是以编程方式创建实例。我正在尝试创建一个新实例,以便我可以(localdb)\myInstance在连接字符串中使用。
更新 这是安装桌面产品的一部分。实例的创建需要在安装此桌面产品的客户端计算机上进行。因此,使用 Visual Studio 或 SSMS 创建它并不是我正在寻找的解决方案。
我得到的最接近的答案是@vasily.sib's Process.Start()。如果没有其他选择,这就是我必须接受的。
软件:
我们一直在尝试将 SQL Server Express 2016 的命名实例安装为 VS 安装程序安装项目的一部分,但没有成功。
我们已尝试InstallNamedInstance()按以下方式调用并给出结果:
SQLEXPR_x64_ENU.exe从管理员 cmd 窗口使用相同的命令行参数运行:成功InstallNamedInstance()从控制台应用程序调用并从管理员 cmd 窗口运行控制台应用程序:成功我注意到 msi 运行时的当前用户是NT AUTHORITY\SYSTEM. 每当安装程序项目失败时,它都会失败并显示以下消息:
运行 SQL Server 安装程序的帐户不具有以下一项或全部权限:备份文件和目录的权限、管理审核和安全日志的权限以及调试程序的权限。要继续,请使用具有这两项权利的帐户。欲了解更多信息,请参阅 http://msdn.microsoft.com/en-us/library/ms813696.aspx, http://msdn.microsoft.com/en-us/library/ms813959.aspx和 HTTP:// MSDN .microsoft.com/en-us/library/ms813847.aspx。
这是安装程序项目的限制还是我遗漏了什么?使用 AdvancedInstaller 会有更好的运气吗?
请注意,安装程序项目的先决条件对我们不起作用,因为我们必须创建 SQL Server Express 的命名实例,而且我们无法看到如何将命令行参数传递给先决条件。
private void InstallNamedInstance()
{
// NOTE: Change below instance name to get unique instances (or uninstall previous instance)
var InstanceName = "TFPICDATABASES2";
var proc …Run Code Online (Sandbox Code Playgroud) sql-server windows-installer burn sql-server-express visual-studio-2017