0

当文件被放入特定文件夹时,我想执行一项工作。

我发现一些文章向我展示了如何在 SQL Server 上做到这一点。

我创建了一个警报类型:WMI Event Alert

对于名称空间,它是自动出现的 SQL 实例\\.\root\Microsoft\SqlServer\ServerEvents\MSSQLSERVER

在查询部分 - 我写了下面的查询,

SELECT * 
FROM __InstanceCreationEvent 
WITHIN 1 
WHERE TargetInstance ISA 'CIM_DataFile' 
AND TargetInstance.Name = ‘c:\\TestFolder\’ `

返回的错误信息是:


Cannot create new alert. 

ADDITIONAL INFORMATION:

Create failed for Alert 'AlertTest'.  (Microsoft.SqlServer.Smo)
For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.50.2425.0+((KJ_PCU_Main).110406-2044+)&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=Create+Alert&LinkId=20476

An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)

SQLServerAgent 错误:WMI error: 0x80041058

@wmi_query无法在提供的中执行@wmi_namespace。验证查询中选择的事件类是否存在于命名空间中,并且查询具有正确的语法。(Microsoft SQL Server,错误:22022)

如需帮助,请单击: http: //go.microsoft.com/fwlink ?ProdName=Microsoft+SQL+Server&ProdVer=10.50.2425&EvtSrc=MSSQLServer&EvtID=22022&LinkId=20476

请您告知我的查询是否正确以及是否还有其他需要检查的地方?

提前非常感谢。

4

2 回答 2

2

您使用了错误的命名空间,CIM_DataFileWMI 类是 \root\CIMV2命名空间的一部分,而不是 \root\Microsoft\SqlServer\ServerEvents\MSSQLSERVER

于 2011-09-22T13:21:55.573 回答
0

在这种情况下,RRUZ 的答案是正确的。但是,此错误消息还有其他可能的原因:

无法在提供的@wmi_namespace 中执行@wmi_query。

一个可能的原因是运行 Windows 服务“Windows Management Instrumentation”的帐户被禁用为 SQL 登录。(如果您运行的是 SQL 2012+,请查找登录名“NT SERVICE\winmgmt”)。(来源:' rahmanagoro ' 的博客)

编辑 2020-05-29:我在 DBA 论坛上对这个问题做了更全面的回答。另一种可能的解决方法是重新启动“Windows Management Instrumentation”服务。不知道是什么导致了问题,但重新启动服务可以解决问题。我见过两次,两次都是在 Windows Server 2008 R2 Standard Edition x64 上。

编辑 2020-05-29:我在 DBA 论坛上对这个问题做了更全面的回答。

于 2015-04-07T02:46:32.077 回答