Krishna1 (4/9/2013)
DECLARE @filename NVARCHAR(1000);DECLARE @bc INT;
DECLARE @ec INT;
DECLARE @bfn VARCHAR(1000);
DECLARE @efn VARCHAR(10);
-- Get the name of the current default trace
SELECT @filename = CAST(value AS NVARCHAR(1000))
FROM ::fn_trace_getinfo(DEFAULT)
WHERE traceid = 1 AND property = 2;
-- rip apart file name into pieces
SET @filename = REVERSE(@filename);
SET @bc = CHARINDEX('.',@filename);
SET @ec = CHARINDEX('_',@filename)+1;
SET @efn = REVERSE(SUBSTRING(@filename,1,@bc));
SET @bfn = REVERSE(SUBSTRING(@filename,@ec,LEN(@filename)));
[/code]
If all you want is the path, this is easier
select reverse(substring(@filename, CHARINDEX('\', @filename, 0) + 1, LEN(@filename)))
c:\Program Files\Microsoft SQL Server\MSSQL10_50.LOCAL2008EXPRESS\MSSQL\Log
Or
select reverse(substring(@filename, CHARINDEX('\', @filename, 0), LEN(@filename)))
c:\Program Files\Microsoft SQL Server\MSSQL10_50.LOCAL2008EXPRESS\MSSQL\Log\
-----------------------------------------------------------------------------------------------------------
"Ya can't make an omelette without breaking just a few eggs" 😉