1

我已经使用 SMO 使用复制数据库向导进行了复制作业(让数据库联机)。数据库将被复制到同一个 SQL 实例。这失败了

包执行失败。步骤失败。

如果我执行它创建的 SSIS 包,则会发生以下情况:

事件名称:OnError 消息:索引超出范围。必须是非负数且小于集合的大小。参数名称:索引 StackTrace:在 Microsoft.SqlServer.Management.Smo.PermissionWorker.GetPermissionSetBase(PermissionEnumKind kind, Int32 i) 在 Microsoft.SqlServer.Management.Smo.SqlSmoObject 的 System.Collections.BitArray.Set(Int32 index, Boolean value) .GetPermissionsFromCache(PermissionEnumKind kind) 在 Microsoft.SqlServer.Management.Smo.Database.AddScriptPermission(StringCollection query, ScriptingPreferences sp) 在 Microsoft.SqlServer.Management.Smo.SqlSmoObject.AddScriptPermissions(StringCollection sc, PermissionEnumKind kind, ScriptingPreferences sp)。 SqlServer.Management.Smo.ScriptMaker.ScriptCreateSpecialUrn(Urn urn,ScriptingPreferences sp,ObjectScriptingType&1 urns) at Microsoft.SqlServer.Management.Smo.ScriptMaker.ScriptUrns(List1 orderedUrns) 在 Microsoft.SqlServer.Management.Smo.ScriptMaker.DiscoverOrderScript(IEnumerable 1 urns) at Microsoft.SqlServer.Management.Smo.ScriptMaker.ScriptWorker(List1 urns, ISmoS​​criptWriter writer) 在 Microsoft.SqlServer.Management.Smo.ScriptMaker.Script(UrnCollection list, ISmoS​​criptWriter writer) 在 Microsoft.SqlServer.Management.Smo .DataTransferBase.GetScriptLoadedTransferWriter() 在 Microsoft.SqlServer.Management.Smo.Transfer.TransferData() 在 Microsoft.SqlServer.Dts.Tasks.TransferObjectsTask.TransferObjectsTask.TransferDatabasesUsingSMOTransfer()

我也尝试过从 SQLCMD 开始工作。结果相同。我也尝试过分离/附加方法。但是,这很好,这不是一个理想的选择,因为它使数据库在传输期间处于脱机状态。

我对服务器(Windows)和实例也有管理员权限。在 SSMS 之外执行包(使用包执行实用程序的 .dtsx 文件)会产生相同的错误。我创建了一个空数据库,其中只有一个表。发生同样的错误。

请帮忙..

操作系统:Windows Server 2012 MSSQL:2016 SP1

4

1 回答 1

0

这已通过应用 2018 年 1 月的 CU 得到解决,即使此处未记录此修复。

于 2018-04-20T12:33:59.583 回答