The meta data is from an SQL 2012 Server.
I have posted alot more, find the whole list here.
Goto Definition or MetaData
Definition:
sys.sp_syspolicy_execute_policy(nvarchar @policy_name, xml @event_data
, bit @synchronous)
MetaData:
CREATE PROCEDURE sys.sp_syspolicy_execute_policy @policy_name sysname, @event_data xml, @synchronous bit = 0 AS BEGIN IF(DB_NAME() != 'msdb') BEGIN RAISERROR(14416,-1,-1) RETURN 14416 END -- make sure that the caller is dbo or PolicyAdministratorRole IF ( IS_MEMBER('PolicyAdministratorRole') != 1 AND UPPER(USER_NAME())!= 'DBO') BEGIN RAISERROR(15003, -1, -1, 'PolicyAdministratorRole') RETURN 15003 END DECLARE @retval int DECLARE @history_id bigint SET @history_id = 0 EXEC @retval = sys.sp_execute_policy @policy_name, @event_data, @history_id OUTPUT IF( (@synchronous = 1) AND (@retval=1)) BEGIN -- the policy failed so we are going to abort the transaction -- make sure we get the log information so that we can recreate -- the log entry DECLARE @policy_id int DECLARE @start_date datetime DECLARE @end_date datetime DECLARE @result bit SELECT @policy_id = policy_id, @start_date = start_date, @end_date = end_date, @result = result FROM msdb.dbo.syspolicy_policy_execution_history_internal WHERE history_id = @history_id DECLARE @target_query_expression nvarchar(max) DECLARE @execution_date datetime DECLARE @target_result bit DECLARE @result_detail nvarchar(max) -- there is only one target SELECT TOP 1 @target_query_expression = target_query_expression, @execution_date = execution_date, @target_result = result, @result_detail = result_detail FROM msdb.dbo.syspolicy_policy_execution_history_details_internal WHERE history_id = @history_id ROLLBACK TRANSACTION IF( @policy_id IS NOT NULL) BEGIN SET IDENTITY_INSERT msdb.dbo.syspolicy_policy_execution_history_internal ON INSERT INTO msdb.dbo.syspolicy_policy_execution_history_internal(history_id, policy_id, start_date, end_date, result) VALUES (@history_id, @policy_id, @start_date, @end_date, @result) SET IDENTITY_INSERT msdb.dbo.syspolicy_policy_execution_history_internal OFF -- insert empty string because the expression is no longer valid -- once the transaction has been rolled back INSERT INTO msdb.dbo.syspolicy_policy_execution_history_details_internal (history_id, target_query_expression, target_query_expression_with_id, execution_date, result, result_detail) VALUES (@history_id, @target_query_expression, N'', @execution_date, @target_result, @result_detail) END END RETURN @retval END
No comments:
Post a Comment