2017-09-05 125 views
1

我试图创建以编程方式使用Microsoft.SqlServer.Management.Smo我的服务器上创建新的数据库新的SQL Server数据库的结果,但始终未能创建数据库:C# - 创建错误

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

是否有异常消息或InnerException?除了例外的名称通常有更多可用的细节。 – Scott

+1

发布内部例外或更多详细信息 –

+2

我只需使用SqlClient并使用TSQL DDL创建数据库。 SMO并不是那么容易,你必须安装它。请参阅https://docs.microsoft.com/en-us/sql/t-sql/statements/create-database-sql-server-transact-sql –

回答

0

在你贴我看到“执行Transact-SQL语句或批处理时出现异常”消息的图像。

所以,我认为这是一个权限问题。作为explained here,你可以尝试此步骤清单:到计算机上以管理员身份(或具有管理员权限的任何用户)

  • 打开“SQL Server配置管理器”
  • 单击“SQL Server服务的

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

    但无论如何,新的密码,check here如果smo安装正确。