我创建了一个执行SSIS包的SQL代理作业作为其中一个作业步骤。我正在尝试配置SSIS作业步骤以设置为执行“localhost”上的包(或者我需要调用它以引用作业所在的同一SQL服务器实例),以便我可以编写脚本作业out,并使用相同的脚本在环境之间部署。
这是SQL Server 2012,所以我尝试使用安装在本地SQL实例上的SSIS目录来运行它。当我们将脚本从开发推送到测试环境并最终生产时,我不想进入脚本并更改服务器名称。
我尝试将“localhost”放在“Server”文本框中,然后单击“Package”设置中的“...”,但是我收到一条错误消息“验证实例名称是否正确以及SQL Server被配置为允许远程连接“ - 我认为它意味着它试图连接到实际上名为localhost的服务器,而不是仅仅检查自己。
任何人都知道如何解决这个问题?
答案 0 :(得分:0)
在你的剧本中如何:
DECLARE @Command NVARCHAR(MAX) =
N'/ISSERVER "\"\SSISDB\....dtsx\"" /SERVER "\"' + @@SERVERNAME + '\"" ...'
然后将其(@command = @Command
)传递给sp_add_jobstep
。
您可能必须处理@@SERVERNAME
特殊返回的非默认实例,因为SSIS没有使用实例名称,我猜,但我没有尝试过。