我正在尝试修改创建 XE 事件会话的存储过程的一部分。
存储过程工作正常,但我面临的问题是,当我使用 Red-Gate SQL 格式格式化 T-SQL 或 Azure DevOps 构建代理来创建 DACPAC 时,它会抛出错误Incorrect syntax near NOT.
引发错误的行:
WHERE ( object_name NOT LIKE 'sp[_]%' OR object_name = 'sp_executesql' ) AND username <> 'ServicesUser'
IF EXISTS (SELECT * FROM sys.server_event_sessions WHERE name ='SQLErrorsFailedProcedures')
DROP EVENT SESSION SQLErrorsFailedProcedures ON SERVER;
-- delete old file
EXECUTE xp_cmdshell 'del C:\_ExtendedEvents\SQLErrorsFailedSPs*.xel'
-- recreate session
CREATE EVENT SESSION SQLErrorsFailedProcedures
ON SERVER
ADD EVENT sqlserver.rpc_completed (
SET collect_statement = 1
ACTION (sqlserver.client_app_name
,sqlserver.client_hostname
,sqlserver.database_name
,sqlserver.username
,sqlserver.plan_handle
,sqlserver.sql_text)
WHERE ( object_name NOT LIKE 'sp[_]%'
OR object_name = 'sp_executesql'
)
AND username <> 'ServicesUser'
)
ADD TARGET package0.event_file(SET filename=N'C:\_ExtendedEvents\SQLErrorsFailedSPs.xel')
WITH (MAX_DISPATCH_LATENCY = 5SECONDS, TRACK_CAUSALITY = ON, STARTUP_STATE = ON);
-- Start Event
ALTER EVENT SESSION SQLErrorsFailedProcedures
ON SERVER STATE = START;
任何问题让我知道