我正在使用SSIS和VS2010(shell)以及从SQL Server 2005(32位)到SQL Server 2012(64位)的数据库。我直接在目标服务器上开发(不是最佳的,但它可以工作)。
当我尝试使用Transfer数据库任务时,它会给我一条错误消息,如下所示: “错误:任务上的Execute方法返回错误代码0x80131500(传输数据时发生错误。有关详细信息,请参阅内部异常。)。Execute方法必须成功,并使用”out“参数指示结果。”
这是问题......如何查看“内部异常”?它是一个GUI界面,无法单步执行代码!我甚至试过setting up logging - 它只是记录了同样无用的错误信息。
Microsoft在其参考文档中没有关于此错误代码的信息(我可以找到)。
在google错误代码之后,我看到其他人有这个错误代码以及与用户,角色和创建它们的消息。
以下是我的设置:
我做错了什么? OR 如何获取“内部异常”消息?
另外,请点击我的帖子到微软的论坛: http://social.technet.microsoft.com/Forums/en-US/sqlintegrationservices/thread/cda53c80-8da6-4ed1-898a-9f3ff8464ae2
答案 0 :(得分:6)
这个答案让我感到恶心......我希望我能帮助别人这个麻烦。问题是:
MSSQL.1
与MSSQL11.<instanceName>
),文件夹的名称会有细微差别。 总之,错误是由于文件夹不存在导致的,因为路径设置错误。我想像这样的其他低级异常也会被具有相同神秘错误消息的接口吃掉。
答案 1 :(得分:1)
我们遇到过这样的情况,有人告诉我们MySQL数据库中的列总是存在有效日期,后来我们发现有'0000-00-00 00:00:00'
和'0001-01-01 00:00:00'
等日期。
我们在查询中处理它,使用case语句将数据转换为SSIS可以使用的日期:
CASE WHEN Product.PurchaseDate < '1900-01-01 00:00:00' THEN '1900-01-01 00:00:00' ELSE Product.PurchaseDate END AS PurchaseDate
当然,您也可以选择null
。
答案 2 :(得分:1)
我也有同样的问题,结果证明是访问问题。尝试将这些访问权限授予mdf和ldf文件将登陆的文件夹:NT Service \ MSSQLSERVER,Owner Creator,System
答案 3 :(得分:0)
“这意味着我需要在转移后转移登录信息 数据库“。
实际上,登录位于服务器(实例)级别,因此您可以转移登录,然后转移数据库。您需要稍后担心用户
这里有一点,我不认为SSIS准备转移2005年 - &gt;我的意思是,“跳过”一个版本是没有意义的。你说你正在使用VS 2012,所以它将是SSIS 2012.它认为它只能读取2008数据库。您在同一台服务器上进行测试并且工作正常的事实也使这一点更加强大。
答案 4 :(得分:0)
这已经过时了,但我在SSMS 17.2中遇到了同样神秘的信息。我试过并检查了上面的所有建议都无济于事。 在我的例子中,问题与Visual Studio 2017中SSIS项目的TargetServerVersion属性有关。默认情况下,这设置为SQL Server 2017,而我的本地服务器是SQL Server 2014 - 一旦更改为相同版本,一切顺利。< / p>