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