为什么ssis转移对象阶段返回smo失败

时间:2018-01-08 06:08:43

标签: sql-server ssis

我正在尝试使用SSIS传输SQL Server对象任务复制数据库。

[Transfer SQL Server Objects Task] Error: Execution failed with the following error: "An exception occurred in SMO.".
[Transfer SQL Server Objects Task] Error: Execution failed with the following error: "Value cannot be null.
Parameter name: server".

我点击测试连接并证明我有正确的服务器名称和密码。 enter image description here

2 个答案:

答案 0 :(得分:1)

我发现如果我从 Visual Studio (VS) 本地运行包,则会出现相同的错误。 我的解决方法是:

  1. 在 VS 中将 SMO 连接服务器设置为 <my-server-name>
  2. 从 VS 部署到服务器
  3. 从服务器本身测试运行它(在集成服务目录 > SSISDB 中找到包,右键单击并选择“执行...”)

<my-server-name> 是您的服务器的名称,也可以是“localhost

由于某种原因,VS 没有得到服务器名称,尽管我将它插入到 SMO 连接中。但是在服务器本身上运行该包似乎有效。

答案 1 :(得分:0)

我的猜测是,漏洞是在2017版SSDT中引入的。要解决此问题,您需要使用以下步骤将项目从2017年降级到2016年:

  1. 在“解决方案资源管理器”中右键单击您的项目名称。

  2. 转到“属性”菜单

  3. 在左侧菜单的标题为“部署属性页面”的打开的窗口中,
  4. 将“配置属性”下钻到“常规”属性

  5. 您将在菜单的右窗格中看到一个标题为“ Deployment Target Version”的标签,在那里-选择“ SQL Server 2016”

  6. 单击“确定”并同意所有以后的重构请求,您就可以完成。