Ssis 无法检索列信息:sql命令未返回列信息

Ssis 无法检索列信息:sql命令未返回列信息,ssis,Ssis,我使用的是MicrosoftSQLServer2008,我尝试了所有3种解决方案,但每次都出现相同的错误 Error at Data Flow Task[OLEDB source[449]]:No colum information was returned by the sql command 从您的代码和问题中我可以收集到的信息是,查询不能在运行时之外处理,因为您正在对其执行动态操作,或者它不会处理它,因为它正在执行一些古怪的操作 实现这一点的一个技巧是使用数据流任务中的源组件创建“虚拟”对

我使用的是MicrosoftSQLServer2008,我尝试了所有3种解决方案,但每次都出现相同的错误

Error at Data Flow Task[OLEDB source[449]]:No colum information was returned by the sql command
从您的代码和问题中我可以收集到的信息是,查询不能在运行时之外处理,因为您正在对其执行动态操作,或者它不会处理它,因为它正在执行一些古怪的操作

实现这一点的一个技巧是使用数据流任务中的源组件创建“虚拟”对象,您可以使用这样的查询来伪造该对象

SELECT 
CONVERT(DATATYPE,NULL) AS srvProp_SerName, 
CONVERT(DATETIME,NULL) AS reportDateTime, 
CONVERT(DATATYPE,NULL) AS srvProp_BldClrVer, 
CONVERT(DATATYPE,NULL) AS srvProp_Collation 
这样,源组件应该能够读取元数据。然后,您可以将适当的查询(只要它在查询文本的长度范围内)放入变量中,然后将其作为表达式分配给源组件

在运行时,它将使用表达式查询——希望不要太在意元数据问题

这可能有效,也可能无效,但值得一试,因为它不会花很长时间来确认

SELECT 
CONVERT(DATATYPE,NULL) AS srvProp_SerName, 
CONVERT(DATETIME,NULL) AS reportDateTime, 
CONVERT(DATATYPE,NULL) AS srvProp_BldClrVer, 
CONVERT(DATATYPE,NULL) AS srvProp_Collation