2012-02-28 50 views
0

有沒有人能夠找出另一種方式來返回SQL Server日誌的結果。我知道我可以這樣做:用TSQL返回SQL日誌內容的另一種方法

declare @sqlserverlogs table ([LogDate] datetime, [ProcessInfo] varchar(10), 
    [Text] varchar(1000)) 

select @start_date = (current_timestamp -1), @end_date = current_timestamp 

insert into @sqlserverlogs exec sys.xp_readerrorlog 0, 1, '', '', 
    @start_date, @end_date, 'asc' 

select * from @sqlserverlogs 

我正在使用的程序需要從單個select語句返回的表。是否有另一種方式來返回SQL Server日誌的內容,如從函數或視圖或任何其他方式的表?

乾杯, 亞當

+0

你能解釋爲什麼「需要」是「單選語句」?你的程序不能調用單個存儲過程? – 2012-02-28 04:29:54

回答

1

而不是通過XP去了,爲什麼不處理,一般這個SQL Server之外?錯誤日誌只是純文本,因此您可以使用C#或PowerShell而不是T-SQL來解析它們。這可能允許您先過濾,然後只將相關行轉儲到表(或者根本不使用表)。

但很難知道爲什麼這必須是一個看起來像表的單一語句。

+0

好主意Aaron。單個select語句是因爲我使用的配置文件。它從文件中獲取sql語句和列標題,然後動態構建一個表,以便人們可以通過修改配置文件來定製他們正在運行的報告。我懷疑我將不得不圍繞你提到的代碼,但我希望有其他TSQL選項可用。 – 2012-02-28 05:29:48

相關問題