【发布时间】:2015-09-02 13:07:06
【问题描述】:
在我从 SSIS 中的数据流 OLE DB 源对象调用的 SP 的末尾,我有以下代码:
-- Get count from TEMP table #InactiveRules
SELECT @InactiveRulesCount = (SELECT COUNT(*) FROM #InactiveRules)
-- Define information sent in the email
IF @InactiveRulesCount = 0
BEGIN
SELECT @InactiveRulesMessage = ('No EXCEPTION KO Rules Found.');
SELECT @Message = @InactiveRulesMessage;
SELECT @Message;
END
ELSE
BEGIN
SELECT * FROM #InactiveRules;
END
当我执行数据流任务时,当我的变量 @InActiveRulesCount 中的计数为 0 时出现此错误:
如何创建数据源列,以便 TEXT 显示在我使用 SSIS 通过电子邮件以附件形式发送的 CSV 文件中?
任何帮助/指导将不胜感激。谢谢。
感谢您的帮助 MiguelH,这是代码:
-- Get count from TEMP table #InactiveRules
SELECT @InactiveRulesCount = (SELECT COUNT(*) FROM #InactiveRules)
-- Define information sent in the email
IF @InactiveRulesCount = 0
BEGIN
SELECT @InactiveRulesMessage = ('No EXCEPTION KO Rules Found.');
SELECT @Message = @InactiveRulesMessage;
SELECT @Message AS ProductName;
SELECT @Message AS ChannelName;
SELECT @Message AS StrategyCode;
SELECT @Message AS StrategyName;
SELECT @Message AS RuleCode;
SELECT @Message AS RuleName;
SELECT @Message AS [Priority];
SELECT @Message AS IsActive;
SELECT @Message AS [Message];
END
ELSE
BEGIN
SELECT ProductName, ChannelName, StrategyCode, StrategyName, RuleCode, RuleName, [Priority], IsActive FROM #InactiveRules;
END
【问题讨论】:
-
该列在 IF count = 0 部分中没有名称。在选择的末尾添加别名。例如选择@MESSAGE 作为消息。
-
谢谢,米格尔。但是,这产生了另一个错误:“组件“OLE DB Source”(1)”验证失败并返回验证状态“VS_NEEDSNEWMETADATA”。有什么建议么?再次感谢。
-
您需要在 =0 部分和 select * 部分中使用相同的数据名称,否则将导致此错误,例如如果您的 SELECT * FROM #InactiveRules 有列“Rule,ID,Message”,那么这些需要在 =0 部分中镜像。基本上分配消息作为规则,消息作为 ID,消息作为消息。我已经在下面澄清了这一点!