SQL命令未返回任何列信息。 SSDT

时间:2018-01-11 23:22:45

标签: sql-server ssis etl sql-server-data-tools ssis-2017

我试图在SSDT中创建更新查询。我得到了

  

无法解析查询文本。

查询是:

UPDATE CustOrderWithDisp
SET YARDS = CustOrderWithDisp.QUANTITY * Lkp_TestCodes.[Test_GALS] * 0.00495113
FROM CustOrderWithDisp
INNER JOIN Lkp_TestCodes
ON CustOrderWithDisp.TEST_CODE = Lkp_TestCodes.[SVC CODE]

但如果我实际运行查询,它就可以了。

我想在SSIS包中使用此查询。当我把这个查询放在OLEDB源中时,我得到......

该组件报告了以下警告:

  

qry03_CalculateYards出错[OLE DB Source [33]]:SQL命令没有返回列信息。

我是新手,所以要温柔。非常感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

  

qry03_CalculateYards出错[OLE DB Source [33]]:SQL命令没有返回列信息。

您收到此消息是因为OLEDB SourceDataFlow Task组件,它用于通过OLEDB连接从表或SQL命令读取数据。

  

OLE DB源使用数据库表,视图或SQL命令从各种OLE DB兼容的关系数据库中提取数据。例如,OLE DB源可以从Microsoft Office Access或SQL Server数据库中的表中提取数据。

您不必将此查询放在OLEDB Source中,您必须使用Execute SQL Task并在SQL Command属性中写下此查询。

对于UPDATE查询,您必须使用Execute SQL Task (在控制流级别,在DataFlow中为否)

  

执行SQL任务从包中运行SQL语句或存储过程。该任务可以包含单个SQL语句或顺序运行的多个SQL语句。

<强>参考