我在SSIS项目中定义了如下所示的参数
然后我想通过我的sql agent-job更改那些可选项,我的定义如下。
即使我尝试设置修复日期值而不是getdate但它返回一条错误消息告诉我
错误:2014-12-19 16:30:21.56代码:0xC001F016来源: 包描述:更改变量的值失败 因为它是一个参数变量。参数变量是只读的。 结束错误DTExec:无法设置\ Package.Variables [startdate] .Value 价值至2014年12月18日。开始时间:16:30:21完成时间:16:30:21经过: 0.296秒包执行失败。步骤失败了。
参数只读?如果是的话,如果我只能在项目中设置它们,那么使用参数的意义是什么。有变数,他们会做同样的工作。如果我做错了什么,请给我点亮一点?
我尝试在项目级别而不是在sql作业中添加getdate()而不是修复值,但也不允许这样做。为什么?
感谢。
答案 0 :(得分:0)
我不完全确定我会按照你的问题解决这个问题,但你可以通过这些变量和表达式来解决这个问题。
答案 1 :(得分:0)
您可以将参数值传递给变量,使用变量进行所需的计算,然后使用包中的变量。
答案 2 :(得分:0)
我在VS2017中遇到了同一件事,它的兼容级别为SQL Server 2012
。我必须从Execute SQL Task中删除该变量的所有引用,从包上的变量列表中删除它,然后通过Execute SQL Task作为新变量重新创建该变量。这为我解决了这个问题。我认为这是一个错误,因为我什至可以看到变量的ReadOnly
属性实际上已设置为False
。玩这个标志什么也没做。
编辑:发现变量名称后面附加了1,并且未使用我想要的变量。我在程序包编辑器的“变量”列表中找不到变量名,因此在记事本中将其打开,发现该变量的ReadOnly
标志实际上设置为True
。更改标志可以解决此问题。