1

我试图在运行时使用直接在变量上的表达式将一些 SBYTE 类型的变量设置为 null。该变量的范围是控制流。

为什么变量评估为 0 而不是 null?如何将其设置为空?

在此处输入图像描述

4

1 回答 1

2

这是因为 SSIS 变量不能是NULL. 奇怪的是,我在文档中找不到任何明确说明它们不可能的NULL内容,它只是说

用户定义变量的值可以是文字或表达式

但是(旧的)Microsoft 博客条目说“如果 SSIS 变量支持 NULL 值......”并且Professional Microsoft SQL Server 2012 Integration Services

在 SSIS 中,变量不能设置为NULL. 相反,每个变量数据类型在没有值的情况下维护一个默认值。

事实上,如果你只评估NULL(DT_UI1)你会得到零;评估NULL(DT_BOOL)给出False;评估NULL(DT_DATE)给出12/30/1899 12:00:00 AM

并且使用表达式将变量设置为NULL也不起作用:如果您创建一个Int32变量,设置EvaluateAsExpressionTrue输入该值,NULL(DT_UI4)那么您会收到错误“属性值无效”,并显示详细消息“NULL(DT_UI4) is不是 Int32 的有效值”。

于 2013-04-25T20:30:46.780 回答