c# - Microsoft.SqlServer.Management.Smo.Transfer 类

标签 c# sql sql-server-2008 smo transfer

我正在尝试使用 Smo.Transfer 类在服务器之间复制 sql 数据库。

当您复制绝对正常的数据库时,这是可以的。它有效。

但是如果您的数据不一致怎么办? 例如,我有一个函数,它从表和不存在的列中获取值(有人重命名了该列,现在该函数无法工作)。但如果您尝试生成脚本,它将正常生成。

但是当您实际尝试运行此脚本时,问题就开始了。 Sql 服务器不允许您创建该函数,因为它不能引用不存在的列。

当您实际运行 .TransferData() 方法时,Transfer 类会发生类似的情况。

问题是。是否可以以某种方式完全跳过对象(在我们的示例中为函数)的创建?

如何捕获错误、跳过对象并让 .TransferData() 方法继续其工作?

最佳答案

我首先会采取修复损坏的依赖关系的方法。然后我会采取一种旨在防止这些依赖关系在未来被破坏的方法。效果是您的传输代码将开始工作,并且其他代码或与数据库代码的交互可能也会更好地工作。

要完成所有这些,您需要了解损坏的依赖项。我在这附近某处有东西。如果我找到了,我会回帖。我在想也许是 RedGate 的 Dependency Tracker 2?据我记忆,它对我来说仍然不属于有用的“区域”,但它仍然可以为您完成这项工作。

关于c# - Microsoft.SqlServer.Management.Smo.Transfer 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3070819/

相关文章:

c# - "NoRootDirectory "(System.IO.DriveType.NoRootDirectory) 是什么驱动器?

mysql - GROUP BY 与两列中的 MAX()

sql - 一次计算多列中的非空值,无需在 SQL 中手动输入

sql-server-2008 - 如何解决 Reporting Services 的错误

sql-server - 多维数据集和统一维度模型(如果有)有什么区别?

c# - 在自定义AuthorizeAttribute中抛出HttpException(401)是否可以?

c# - 在哪里可以找到 Microsoft.VisualStudio.DebuggerVisualizers?

C# - WPF 如何取消引用 BitmapImage 以便删除源文件?

MYSQL 内连接(SQL 代码中的 If 语句?)

java - com.microsoft.sqlserver.jdbc.SQLServerException : Incorrect syntax near 'GO'