8

我在我的 SSIS 项目中定义了如下所示的参数

在此处输入图像描述

然后我想通过我的 sql agent-job 更改那些可选的,我定义如下。

在此处输入图像描述

即使我尝试设置一个修复日期值而不是 getdate 但它返回一条错误消息告诉我

错误:2014-12-19 16:30:21.56 代码:0xC001F016 来源:包描述:更改变量的值失败,因为它是参数变量。参数变量是只读的。结束错误 DTExec:无法将 \Package.Variables[startdate].Value 值设置为 18.12.2014。开始时间:16:30:21 结束时间:16:30:21 经过时间:0.296 秒。包执行失败。步骤失败。

参数是只读的吗?如果是的话,如果我只能在项目中设置参数,那么使用参数有什么意义。有变量,他们会做同样的工作。如果我做错了什么,请给我一些光明?

我尝试添加 getdate() 而不是已经在项目级别而不是在 sql 作业中的修复值,但它也是不允许的。为什么?

谢谢。

4

4 回答 4

0

我通过这个视频得到我的研究:https ://www.youtube.com/watch?v=wBpBTl_vUBM

根据视频(从 15:14 开始),项目参数似乎只是只读的,并且包变量可用于读取或写入。

于 2021-11-12T11:03:30.617 回答
0

我刚刚在 VS2017 中遇到了同样的事情,其中​​包含一个兼容级别的包SQL Server 2012。我必须从执行 SQL 任务中删除该变量的所有引用,从包上的变量列表中删除它,然后通过执行 SQL 任务将变量重新创建为新变量。这为我解决了这个问题。我认为这是一个错误,因为我什至可以看到ReadOnly变量的属性实际上设置为False. 玩这面旗帜什么也没做。

编辑:发现变量名称附加了一个 1 并且没有使用我想要的变量。我在包编辑器的变量列表中找不到变量名,所以我在记事本中打开它,发现ReadOnly变量的标志实际上设置为True. 更改标志解决了这个问题。

于 2019-06-10T11:35:18.953 回答
-1

您可以将参数值传递给变量,使用变量进行所需的计算,然后使用包中的变量。

于 2014-12-21T21:51:39.007 回答
-1

我不完全确定我是否遵循您的问题,但您可以通过使这些变量和表达式具有这样的值来解决这个问题。

表达

获取日期

于 2014-12-19T19:28:09.837 回答