2016-03-01 72 views
0

我写了这样的代码执行SQL任务如何表变量数据传递到数据流中的SSIS

Declare @tmpHistoricDriveSpace Table 
(Servername varchar(255), MachineName varchar(255), Drive char(2), FreeSpace_MB int) 
insert into @tmpHistoricDriveSpace (Drive, FreeSpace_MB) exec xp_fixeddrives 

update @tmpHistoricDriveSpace 
set Servername = convert(varchar(225), 
SERVERPROPERTY('servername')), 
MachineName = convert(varchar(225), SERVERPROPERTY('MachineName')) 

Select MachineName, Servername, Drive, Freespace_MB 
from @tmpHistoricDriveSpace 

这看起来不错,但我无法携带这种结果到SSIS数据流任务,我正在使用填充到表中。

我不喜欢在master数据库上创建临时表或仅为此任务创建新数据库的想法。

任何帮助,非常感谢。

感谢

Please refer this link for previous discussion

+0

是您的目标是收集SQL Server的硬盘空间,并把它保存到中央台?有很多方法可以做到这一点,而且你发现SISS是更加复杂的方法之一。你**有**使用'xp_fixeddrives'或者这只是你迄今为止的工作方式?你有没有考虑过使用WMI任务呢?试试这个例子,但写入一个表格,而不是CSV:https://www.mssqltips.com/sqlservertip/2932/using-the-ssis-wmi-task-to-gather-system-information/ –

+0

谢谢尼克..我真的不能使用WMI出于某种原因,这并不能真正帮助我解决问题。我试图在同一个软件包中运行不同的流程,以便获得的结果是同步的。就像我为文件大小,可用空间等做的一样。 – Prav54

+0

但临时表是为这个...这是他们的目的,你为什么不创建正常的临时表,删除索引,做你的东西,然后放下它 – Veljko89

回答

0

代替编写代码在OLE DB源直接为什么你不能把它写在执行SQL任务。

感谢, Santhosh