我有一個很大的審計存儲過程,它打印值並運行一些SELECT語句。在SQL Management Studio中運行時,我們使用select來顯示「結果到文本」,以便所有SQL結果和打印語句顯示在一個位置。如何將SQL輸出記錄到客戶端上的文本文件C#
現在我需要在過程結束時調用此審計過程,並基本上將所有將「結果到文本」窗口中的數據存儲到.txt文件中。
這怎麼辦?
我有一個很大的審計存儲過程,它打印值並運行一些SELECT語句。在SQL Management Studio中運行時,我們使用select來顯示「結果到文本」,以便所有SQL結果和打印語句顯示在一個位置。如何將SQL輸出記錄到客戶端上的文本文件C#
現在我需要在過程結束時調用此審計過程,並基本上將所有將「結果到文本」窗口中的數據存儲到.txt文件中。
這怎麼辦?
您可以獲得PRINT輸出,但不會以與獲取結果集相同的方式。如果你的輸出假定了一個特定的PRINT和結果集數據序列,這是不可能的。
您可以通過回調/事件處理程序得到打印輸出:
SqlConnection c ...
c.InfoMessage += new SqlInfoMessageEventHandler(cb_Msg);
...
void cb_Msg(object sender, SqlInfoMessageEventArgs e)
{
// e.Message has a line of PRINT output
}
當你執行一些針對SqlConnection的,它會調用回調的每一行打印輸出。
您最好將輸出參數添加到sp並將文本輸出放入。然後,當您在代碼中調用sp時,您可以單獨獲取結果集和文本,並且可以根據需要顯示它們。