问题标签 [smo]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 如果 sqlexpress 位于安装 SQLSERVER2008 的同一台机器上,SmoApplication.EnumAvailableSqlServers() 不会列出默认实例
我正在使用 SMO 查找网络的可用 sqlserver。但是在我运行的一台机器上
应用程序它没有给出默认实例名称,但对于所有其他机器它给出
将显示命名和默认实例。
观察我的情景。
例如:机器名称:rkwrk3-vm-sr(我在其中运行应用程序的本地机器
安装了sqlserver2008)
在这实际上我有 sql2008 作为默认实例和 sqlexpress(2005) 作为命名实例...
但它只显示了一个实例 rkwrk3-vm-sr\sqlexpress 并且它没有显示 rkwrk3-vm-sr。
和其他一些机器hr-2k3-tm(安装sqlserver2005的地方)
为此,它显示 Hr-2k3-tm 和 Hr-2k3-tm/sqlexpress
我该如何解决这个问题。非常感谢任何帮助。
提前致谢。
c# - 如何使用 SMO 连接到 Sqlserver2008 任何解决方法都必须完成?
我写这个是为了在本地机器上查找 sql server 实例:
我的本地机器上有 3 个实例
- rk2k3-vm-sr(sql2008实例)
- rk2k3-vm-sr\sql2k8express (sql2k8 instacne)
- rk2k3-vm-sr\sqlexpress(sql2k5 实例)
但它只显示2和3。1不显示。当我使用服务器对象连接时,sql2k8express 失败。
这是输出....
-->实例 RK2K3-VM-SR\SQLEXPRESS
主
模型
msdb
tempdb
-->实例 RK2K3-VM-SR\SQL2K8EXPRESS
Microsoft.SqlServer.Management.Common.ConnectionFailureException:无法连接到服务器 RK2K3-VM-SR\SQL2K8EXPRESS。---> Microsoft.SqlServer.Management.Common.ConnectionFailureException:不支持此 SQL Server 版本 (10.0)。在 Microsoft.SqlServer.Management.Common.ConnectionManager.CheckServerVersion (ServerVersion 版本) 在 Microsoft.SqlServer.Management.Common.ConnectionManager.InternalConnect(Wi ndowsIdentity impersonatedIdentity) 在 Microsoft.SqlServer.Management.Common.ConnectionManager.Connect() ---内部异常堆栈跟踪结束 --- 在 Microsoft.SqlServer.Management.Common.ConnectionManager.Connect() 在 Microsoft.SqlServer.Management.Common.ConnectionManager.PoolConnect() 在 Microsoft.SqlServer.Management.Common.ConnectionManager.get_ServerVersion( ) 在微软。
我怎样才能解决这个问题?我的系统防火墙被禁用,所有 sql 服务都在运行。
sql-server-2005 - 将数据库从 SQL-Server 2005 转移到 SQL-Server 2008
我有一个现有的应用程序,它通过 SMO“传输”将数据库从源服务器传输到目标服务器。我们只传输数据。
两个 SQL-Server 都是 2005。
现在我们将目标服务器升级到 SQL-Server 2008。通过 SMO 传输是否仍然有效?
c# - 如何在每个人都有权限的情况下使用 SMO 创建数据库?
我正在尝试使用 SMO 创建一个 SQL Server Express 数据库,如下所示:
我能够很好地使用数据库。但是,如果其他人试图复制数据库,他们会收到文件权限错误。在 Windows 资源管理器的安全选项卡下查看时,我是唯一拥有权限的人。如果我只是制作文件的副本,则该副本会授予每个人权限。
那么,我需要做什么才能让 Create() 授予所有人权限?我认为创建的文件将继承目录的权限......但显然不是。我意识到我可以自己设置文件权限,但宁愿尝试理解 Create() 赋予特殊权限的原因。
sql-server - SMO 的替代品,即 SQL Server 的 DML API?
我刚刚了解到,如果没有在应用程序服务器上安装 SQL 或完整的 SMO,我将无法在 ASP.NET 中使用 SMO。我不允许这样做,所以我不能使用 SMO。
还有哪些其他库与 SMO 做同样的事情,但不需要 MSI 安装程序或 COM 注册?
我知道我可以在 ADO.NET 命令中将 DDL 发送到服务器,但这正是我试图通过使用 SMO 来避免的。
SMO有什么好处:
用于查询元数据(列、数据类型)的面向对象的 API,不依赖于不一致的 COBOL-like DDL。
不需要查询未记录的存储过程、系统存储过程或每隔几个版本就中断的表。
在我的脑海中,我可以想到 ADOX 和 DMO,但它们都是基于 COM 的 API。
sql-server - 使用 SQL SMO 修复孤立用户?
有没有办法使用 SQL SMO 修复 SQL 2005/2008 数据库中的孤立用户?
通过枚举用户并查找空User.Login
属性,您可以相对轻松地找到孤立用户:
不幸的是,修复并不像将User.Login
属性设置为匹配的服务器登录名那么简单。User.Login
确实有一个二传手,但我不知道有一种方法可以将它传播回服务器。它仅在您创建新的User
.
我考虑从数据库中删除用户并将服务器登录重新绑定到数据库,但随之而来的是额外的复杂性。诸如重新分配默认模式、角色以及如果他们在数据库中拥有一个模式等复杂情况,当您逐级进行这些更改时,您会遇到更多麻烦。足以让您想要内联 SQL 并完成它:
但是,我不希望内联对系统存储过程的调用。
有什么建议么?
c# - 无法使用 SMO 枚举 SQL Server 2008 注册服务器
我的工作站上安装了 SQL Server 2005 Management Studio。此后,我安装了 SQL Server 2008 工作站工具并删除了 SQL Server 2005 工具。我现在正在编写 ac# 程序来迭代我在管理工作室中注册的服务器。问题是,它正在遍历我在 2005 年工具(现已卸载)中的旧列表,而不是我的 2008 年注册服务器列表。
我认为这可能是程序集引用问题,因此我检查了我的 SMO 程序集引用是否指向新工具。我在用:
- Microsoft.SqlServer.ConnectionInfo
- Microsoft.SqlServer.Management.Sdk.Sfc
- 微软.SqlServer.Smo
- Microsoft.SqlServer.SqlEnum
我检查了程序集是 10.0 版本。
我的 c# 代码片段是:
和
有想法该怎么解决这个吗?我只是使用了错误的 SMO 代码吗?
干杯,马克。
sql-server - 执行 KillAllProcesses 时删除服务器的所有活动数据库连接失败
我需要从我的应用程序执行数据库恢复。在这样做之前,我想杀死所有进程,如下所示:
但是,当第一个 KillAllProcesses 运行时,我得到以下异常:
Microsoft.SqlServer.Management.Smo.FailedOperationException:删除服务器“MYServer”的所有活动数据库连接失败。---> Microsoft.SqlServer.Management.Common.ExecutionFailureException:执行 Transact-SQL 语句或批处理时发生异常。---> System.Data.SqlClient.SqlException:只能杀死用户进程。
用于创建服务器的连接字符串具有 sa 凭据,但是,需要终止的进程是在不同的用户下启动的。我测试了类似的场景,测试成功了。
这种情况最近才开始发生。对我来说,似乎有一些进程不是由用户启动的?
c# - 如何从 C# 恢复数据库
我有一个 SQL 2008 数据库。我正在运行一个支持该数据库的表单,然后尝试更新它。如果更新失败,想法是恢复该备份。这是我用来恢复备份的代码。
问题似乎是我选择的文件名与在线数据库不同。我基本上想用备份替换服务器上的数据库。调用 SqlRestore 时出现异常。
主要的例外说
{"服务器 'localhost' 恢复失败。"}
深入研究内部异常会显示这些错误
执行 Transact-SQL 语句或批处理时发生异常。
进而
Logical file 'DB' is not part of database 'DB'. Use RESTORE FILELISTONLY to list the logical file names.\r\nRESTORE DATABASE is terminating abnormally.
I assume there is some way to tell this to just use replace the existing DB as is.
I use this bit of code to get the file path of the DB to have a directory to dump the backup. Maybe this could be used to get the file names to recreate.
c# - c# 和 SMO - 获取消息输出,例如“表已存在”以进行日志记录
我正在使用 SQL 管理对象连接到 SQL 服务器。目前,它们包含用于我的示例的简单“创建表”命令。
我故意运行此代码两次以导致“表已存在”的错误。
但是我下面的事件没有被触发。
任何人都有任何想法,我如何在我的代码中获取此消息,然后更改 ExecutionType 以停止导致异常的错误(我不想这样做,我想继续)
我的代码:
活动:-