sqlserver2008的 查询分析器如何执行外部os命令

lilinew 2011-05-20 03:10:33
win2008
sqlserver2008
我需要在sqlserver2008的 查询分析器里执行1个 windows 命令
wmic LogicalDisk where "Caption='C:'" get FreeSpace,Size /value
FreeSpace=16668078080
Size=31453437952

(我知道 oracle mysql 是在控制台 都可以执行外部的 os 命令的)
我查询分析器里测试发现错误
Msg 156, Level 15, State 1, Line 1
Incorrect syntax near the keyword 'where'.

1 这里想知道有没有其他方法 可以在 sqlserver agent的 job 里执行这个命令 得到 2个 返回值
16668078080 31453437952 我需要得到2个值之后 做计算 之后根据结果 之后发邮件 提示磁盘空间不足报警邮件
2 或者有没有什么windows脚本方法 直接把 6668078080 和 31453437952的值 如何从上面的命令里取到
之后计算,windows脚本如何发邮件(job一直在用的)?

...全文
307 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ubuntu_Fedora 2011-05-20
  • 打赏
  • 举报
回复
1.先建一个表tableA,大概字段deviceID, freespace,totalspace,etc
2.ps脚本

[String] $strInsertSql=""
$devices=Get-WmiObject -Class Win32_LogicalDisk -filter "DriveType=3"

Foreach ($device in $devices) {
$strInsertSql = $strInsertSql + "insert tableA select '"
+ $device.DeviceID.SubString(0,1) + "', " + $device.Size/1024 + ", " + $device.FreeSpace/1024

}
$strInsertSql
Invoke-Sqlcmd -Query $strInsertSql -ServerInstance $inventoryServer -Database $inventoryDatabase

3.在job中定期运行这个脚本,脚本要修改的,大体差不多了
4.job中写sql查表计算,不符合条件直接发邮件,或者直接写ps脚本连邮件一起发了。

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧