C# - 创建新的SQL Server数据库导致错误

时间:2017-09-05 14:44:10

标签: c# .net sql-server sql-server-express smo

我尝试使用Microsoft.SqlServer.Management.Smo以编程方式在我的服务器上创建新数据库,但始终无法创建数据库:

Server svr = new Server(new ServerConnection(@".\SQLEXPRESS"));
Database db = new Database(svr, "TESTDB");
db.Create(); 

我在db.create();收到此错误:

  

Microsoft.SqlServer.Management.Smo.FailedOperationException类型的未处理异常'发生在Microsoft.SqlServer.Smo.dll

服务器的名称是正确的,我使用Windows身份验证连接到服务器。

请帮助,如果有更好的方法,请告诉我

1 个答案:

答案 0 :(得分:0)

在您发布的图片中,我看到消息“执行transact-sql语句或批处理时发生异常”。

所以,我认为这是一个权限问题。如explained here,您可以尝试以下步骤列表:

  1. 以管理员(或具有管理员权限的任何用户)
  2. 登录计算机
  3. 打开“SQL Server配置管理器”
  4. 单击左窗格中的“SQL Server服务”
  5. 如果正在运行,请停止右窗格中的“SQL Server”和“SQL Server代理”实例
  6. 右键单击“SQL Server”实例 - >以单用户模式运行SQL Express属性(在SQL Server配置管理器的右窗格中)。
  7. 单击“高级”选项卡,然后查找“启动参数”。更改“启动参数”,以便新值为-m; (没有<>) 例: 来自:-dc:\ Program Files \ Microsoft SQL .............(直到字符串的结尾) to:-m; -dc:\ Program Files \ Microsoft SQL .............(直到字符串结尾)
  8. 启动SQL Server
  9. 打开MS SQL Server Management Studio并使用“Windows身份验证”作为身份验证模式登录到SQL Server。由于我们在单用户模式下运行SQL Server,并且您使用管理员权限登录到计算机,因此您将拥有对数据库的“sysadmin”访问权限。
  10. 在左窗格中展开MS SQL Server Management Studio上的“安全”节点
  11. 展开“登录”节点
  12. 双击“sa”登录
  13. 如果选中“强制密码策略”,则输入复杂密码更改密码,否则,只需输入任何密码。
  14. 单击左窗格中的“状态”,确保“sa”帐户已“启用”。将“登录”下的单选框设置为“已启用”
  15. 点击“确定”
  16. 返回MS SQL Server Management Studio的主窗口,右键单击左窗格中最顶层的节点(通常为“。\ SQLEXPRESS(SQL Server)”)并选择属性,验证是否使用了SQL Server身份验证。
  17. 单击左窗格中的“安全性”,确保“SQL Server和Windows身份验证模式”是在“服务器身份验证”下选择的模式
  18. 点击“确定”
  19. 与MS SQL Server Management Studio断开连接
  20. 再次打开“Sql Server Configuration Manager”并停止SQL Server实例。
  21. 右键单击SQL Server实例,然后单击“高级”选项卡。再次查找“启动参数”并删除“-m;”你之前添加的。
  22. 单击“确定”并再次启动SQL Server实例
  23. 您现在应该可以使用在步骤12中设置的新密码以“sa”身份登录。
  24. 无论如何,check here如果正确安装了smo。