System :: TaskName在PreExecute事件处理程序中?

时间:2017-04-20 11:30:27

标签: tsql ssis

我试图通过在数据流任务的PreExecute事件的Execute SSIS Tasl中运行以下查询来动态设置我的SSIS Default Buffer Max Rows属性:

SELECT 
    SUM (max_length)  [row_length]
FROM  sys.tables t
JOIN sys.columns c
    ON t.object_id=c.object_id
JOIN sys.schemas s
    ON t.schema_id=s.schema_id
WHERE t.name = 'TableName'
    AND s.name = 'SchemaName'

我试图通过引用System :: TaskName变量来巧妙地使用我的数据流任务的名称(与我的目标表名称相同)作为我的执行SQL任务中的参数。

问题是,一切似乎都正确验证了,但是在执行过程时,PreExecute失败了。

我发现这是因为System :: TaskName在Execute以外的任何地方都不可用。

除了转储一堆手动将变量手动更改为流程的脚本任务之外,是否还有其他可用的变量/方法?

谢谢,

丹尼尔

1 个答案:

答案 0 :(得分:1)

找到答案,

我使用过System :: SourceName

丹尼尔