【发布时间】:2018-02-01 12:07:53
【问题描述】:
我已经使用 SMO 使用复制数据库向导进行了复制作业(让数据库联机)。数据库将被复制到同一个 SQL 实例。这失败了
包执行失败。步骤失败。
如果我执行它创建的 SSIS 包,会发生以下情况:
事件名称:OnError 消息:索引超出范围。一定是 非负数且小于集合的大小。参数名称: 索引 StackTrace:在 System.Collections.BitArray.Set(Int32 索引, 布尔值)在 Microsoft.SqlServer.Management.Smo.PermissionWorker.GetPermissionSetBase(PermissionEnumKind 种类,Int32 i) 在 Microsoft.SqlServer.Management.Smo.SqlSmoObject.GetPermissionsFromCache(PermissionEnumKind 种类)在 Microsoft.SqlServer.Management.Smo.SqlSmoObject.AddScriptPermissions(StringCollection sc, PermissionEnumKind 种类, ScriptingPreferences sp) at Microsoft.SqlServer.Management.Smo.Database.AddScriptPermission(StringCollection 查询,ScriptingPreferences sp) 在 Microsoft.SqlServer.Management.Smo.ScriptMaker.ScriptCreateSpecialUrn(Urn 瓮,ScriptingPreferences sp,ObjectScriptingType& scriptType)在 Microsoft.SqlServer.Management.Smo.ScriptMaker.ScriptCreate(瓮瓮, ScriptingPreferences sp、ObjectScriptingType& scriptType) 在 Microsoft.SqlServer.Management.Smo.ScriptMaker.ScriptCreateObjects(IEnumerable
1 urns) at Microsoft.SqlServer.Management.Smo.ScriptMaker.ScriptUrns(List1 有序Urns)在 Microsoft.SqlServer.Management.Smo.ScriptMaker.DiscoverOrderScript(IEnumerable1 urns) at Microsoft.SqlServer.Management.Smo.ScriptMaker.ScriptWorker(List1 瓮,ISmoScriptWriter 作家)在 Microsoft.SqlServer.Management.Smo.ScriptMaker.Script(UrnCollection 列表,ISmoScriptWriter 作家)在 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
【问题讨论】:
标签: sql-server ssis etl sql-server-2016 copy-database-wizard