0

我正在尝试修改创建 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;

任何问题让我知道

4

0 回答 0