CREATE PROCEDURE SegSOyApp_DataCollect @TracePath varchar(1024), @DatabaseName nvarchar(256) AS
BEGIN

	DECLARE @TraceName NVARCHAR(1100)
	DECLARE @TraceID INT
	DECLARE @TrcAux INT
	DECLARE @FileSize BIGINT
	DECLARE @On BIT
	DECLARE @DirectoryCreateCmd varchar(1100)
	DECLARE @TraceDeleteCmd varchar(1100)
	
	IF SUBSTRING(@TracePath,LEN(@TracePath),1) <> '\'
		SET @TracePath = @TracePath + '\'
		
	SET @TraceName = @TracePath + @DatabaseName + '_SegSO_EffPerm'
	
	SET @DirectoryCreateCmd = 'mkdir ' + @TracePath
	EXEC master..XP_CMDSHELL @DirectoryCreateCmd, no_output
	
	SET @TrcAux = (SELECT traceid FROM fn_trace_getinfo(0) WHERE property = 2 and CONVERT(nvarchar(256),value) LIKE @TracePath + @DatabaseName + '_SegSO_EffPerm%')
	IF @TrcAux IS NOT NULL
	BEGIN
		EXEC master..SP_TRACE_SETSTATUS @TrcAux,0 --Se detiene la recoleccion de la traza
		EXEC master..SP_TRACE_SETSTATUS @TrcAux,2 --Se elimina la traza
	END
	
	SET @TraceDeleteCmd = 'del ' + @TracePath + @DatabaseName + '_SegSO_EffPerm*.trc'
	EXEC master..XP_CMDSHELL @TraceDeleteCmd, no_output
	
	SET @FileSize = 50
	SET @On = 1 
	 EXEC master..SP_TRACE_CREATE @TraceID output,
		@options = 2,
		@tracefile = @TraceName,
		@maxfilesize  = @FileSize 
		
	/*Se agregan las columnas para el evento 114: Audit Schema Object Access Event Class*/

	EXEC master..SP_TRACE_SETEVENT @TraceId, 114,10,@On --ApplicationName
	EXEC master..SP_TRACE_SETEVENT @TraceId, 114,35,@On --DatabaseName
	EXEC master..SP_TRACE_SETEVENT @TraceId, 114,27,@On --EventClass
	EXEC master..SP_TRACE_SETEVENT @TraceId, 114,60,@On --IsSystem
	EXEC master..SP_TRACE_SETEVENT @TraceId, 114,11,@On --LoginName
	EXEC master..SP_TRACE_SETEVENT @TraceId, 114,34,@On --ObjectName
	EXEC master..SP_TRACE_SETEVENT @TraceId, 114,28,@On --ObjectType
	EXEC master..SP_TRACE_SETEVENT @TraceId, 114,19,@On --Permissions
	EXEC master..SP_TRACE_SETEVENT @TraceId, 114,23,@On --Success

	/*Se agregan las columnas para el evento 131: Audit Schema Object Management Event Class*/

	EXEC master..SP_TRACE_SETEVENT @TraceId, 131,10,@On --ApplicationName
	EXEC master..SP_TRACE_SETEVENT @TraceId, 131,35,@On --DatabaseName
	EXEC master..SP_TRACE_SETEVENT @TraceId, 131,27,@On --EventClass
	EXEC master..SP_TRACE_SETEVENT @TraceId, 131,21,@On --EventSubclass
	EXEC master..SP_TRACE_SETEVENT @TraceId, 131,60,@On --IsSystem
	EXEC master..SP_TRACE_SETEVENT @TraceId, 131,11,@On --LoginName 
	EXEC master..SP_TRACE_SETEVENT @TraceId, 131,34,@On --ObjectName
	EXEC master..SP_TRACE_SETEVENT @TraceId, 131,28,@On --ObjectType
	EXEC master..SP_TRACE_SETEVENT @TraceId, 131,23,@On --Success

	/*Se agregan los filtros para los eventos que va a registrar la traza*/

	EXEC master..SP_TRACE_SETFILTER @TraceId, 35, 0, 0, @DatabaseName -- AND DatabaseName = @DatabaseName
	EXEC master..SP_TRACE_SETFILTER @TraceId, 60, 0, 0, 0 -- AND IsSystem = 0


	/*Se inicia el registro de eventos en la traza*/

	EXEC master..SP_TRACE_SETSTATUS @TraceId, 1

END