我使用SMO使用复制数据库向导进行了复制作业(在线保留DB)。将DB复制到同一SQL实例。这失败了
包执行失败。步骤失败了。
如果我执行它创建的SSIS包,则会发生以下情况:
事件名称:OnError消息:索引超出范围。一定是 非负面且小于集合的大小。参数名称: index StackTrace:在System.Collections.BitArray.Set(Int32索引, 布尔值)at Microsoft.SqlServer.Management.Smo.PermissionWorker.GetPermissionSetBase(PermissionEnumKind kind,Int32 i)at Microsoft.SqlServer.Management.Smo.SqlSmoObject.GetPermissionsFromCache(PermissionEnumKind 亲切的 Microsoft.SqlServer.Management.Smo.SqlSmoObject.AddScriptPermissions(StringCollection sc,PermissionEnumKind kind,ScriptingPreferences sp)at Microsoft.SqlServer.Management.Smo.Database.AddScriptPermission(StringCollection 查询,ScriptingPreferences sp)at Microsoft.SqlServer.Management.Smo.ScriptMaker.ScriptCreateSpecialUrn(金塔 urn,ScriptingPreferences sp,ObjectScriptingType& scriptType)at Microsoft.SqlServer.Management.Smo.ScriptMaker.ScriptCreate(Urn urn, ScriptingPreferences sp,ObjectScriptingType& scriptType)at Microsoft.SqlServer.Management.Smo.ScriptMaker.ScriptCreateObjects(IEnumerable的
1 urns) at Microsoft.SqlServer.Management.Smo.ScriptMaker.ScriptUrns(List
1 orderedUrns)at Microsoft.SqlServer.Management.Smo.ScriptMaker.DiscoverOrderScript(IEnumerable的1 urns) at Microsoft.SqlServer.Management.Smo.ScriptMaker.ScriptWorker(List
1 urns,ISmoScriptWriter writer) Microsoft.SqlServer.Management.Smo.ScriptMaker.Script(UrnCollection 列表,ISmoScriptWriter编写者) Microsoft.SqlServer.Management.Smo.DataTransferBase.GetScriptLoadedTransferWriter() 在Microsoft.SqlServer.Management.Smo.Transfer.TransferData()at Microsoft.SqlServer.Dts.Tasks.TransferObjectsTask.TransferObjectsTask.TransferDatabasesUsingSMOTransfer()
我也试过从SQLCMD开始这项工作。结果相同。 我也尝试过Detach / Attach方法。然而,这很好,这不是一个理想的选择,因为它使数据库离开传输的持续时间。
我在服务器(Windows)和实例上拥有管理员权限。 在SSMS外部执行包(使用包执行实用程序的.dtsx文件)会产生相同的错误。 我创建了一个空数据库,其中只有一个表。发生同样的错误。
请帮助..
操作系统:Windows Server 2012 MSSQL:2016 SP1
答案 0 :(得分:0)
这已经通过应用2018年1月的CU来解决,即使此修订没有记录在那里。