我正在尝试使用 Smo.Transfer 类在服务器之间复制 sql 数据库。
当您复制绝对正常的数据库时,这是可以的。它有效。
但是如果您的数据不一致怎么办? 例如,我有一个函数,它从表和不存在的列中获取值(有人重命名了该列,现在该函数无法工作)。但如果您尝试生成脚本,它将正常生成。
但是当您实际尝试运行此脚本时,问题就开始了。 Sql 服务器不允许您创建该函数,因为它不能引用不存在的列。
当您实际运行 .TransferData() 方法时,Transfer 类会发生类似的情况。
问题是。是否可以以某种方式完全跳过对象(在我们的示例中为函数)的创建?
如何捕获错误、跳过对象并让 .TransferData() 方法继续其工作?
最佳答案
我首先会采取修复损坏的依赖关系的方法。然后我会采取一种旨在防止这些依赖关系在未来被破坏的方法。效果是您的传输代码将开始工作,并且其他代码或与数据库代码的交互可能也会更好地工作。
要完成所有这些,您需要了解损坏的依赖项。我在这附近某处有东西。如果我找到了,我会回帖。我在想也许是 RedGate 的 Dependency Tracker 2?据我记忆,它对我来说仍然不属于有用的“区域”,但它仍然可以为您完成这项工作。
关于c# - Microsoft.SqlServer.Management.Smo.Transfer 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3070819/