我们正在运行exec xp_fixeddrives
以获取与SQL Server关联的每个物理驱动器的可用空间。
我正在运行此代码作为SSIS包的一部分,该包获取所有SQL服务器可用空间。
目前我正在tempdb
创建一个表格,并将exec xp_fixeddrives
的结果插入此表格中。但我面临的问题是,当服务器重新启动时,我面临访问问题,因为该表在Tempdb
上。
我真的不喜欢在Master
DB或Model
DB中创建表格的想法。我面临的一个挑战是我们执行从2000年到2014年的SQL Server版本的不同实例。所以很明显我必须记住这些问题。
对此有任何建议都非常感谢。
答案 0 :(得分:1)
很明显,只要SQL Services重新启动,SQL Server就会重置TempDb。在这种情况下,您将面临访问问题,因为该表将不存在。如果我还要存储历史检查信息,我可能会创建自己的表来存储详细信息。
如果您正在从SSIS运行代码并且想要在验证后立即发送邮件,那么您甚至不必创建任何表。只需在执行SQL任务中填充SSIS中的对象变量,该任务将在查询
下运行DECLARE @t TABLE
(Drive VARCHAR(1),Size INT)
INSERT INTO @t
EXEC MASTER..xp_fixeddrives
SELECT * FROM @t
在脚本任务中读取此对象变量以发送邮件。