用編程的方式將當前伺服器上SQL SERVER中正執行的所有T-SQL語句記錄下來

來源:互聯網
上載者:User
標題所描述的功能是簡單的,下面的例子也很簡單,但是你可以根據自己的需要進行擴充功能,我這裡只是拋磚引玉而以,呵呵……,其實你有時間可以自己做一個SQL Server Profiler玩一玩。
第一步:
添加引用:Microsoft.SqlServer.ConnectionInfousing Microsoft.SqlServer.Management.Trace;
using Microsoft.SqlServer.Management.Common;

第二步:
配置串連資訊            ConnectionInfoBase conninfo = new SqlConnectionInfo();
            ((SqlConnectionInfo)conninfo).ServerName = "ServerName";
            ((SqlConnectionInfo)conninfo).UserName = "UserName";
            ((SqlConnectionInfo)conninfo).Password = "Password";
            ((SqlConnectionInfo)conninfo).UseIntegratedSecurity = false;

第三步:
建立mytdf.tdf檔案,放入運行程式所在的檔案夾裡。
註:.tdf檔案是用來在後面做為讀取資料的模版用的,你可以在SQL Server Profiler裡建立模版自己建立一個新的檔案。
讀取資訊(包括T-SQL語句等等,按需要添加,這裡只添加擷取正在執行的T-SQL語句功能)            TraceServer trace = new TraceServer();
            trace.InitializeAsReader(conninfo, "mytdf.tdf");

            while (trace.Read())
            {
                //Statements;
                Console.WriteLine(trace["TextData"]);
            }
            Console.Read();
            trace.Close();

全部代碼:Code
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SqlServer.Management.Trace;
using Microsoft.SqlServer.Management.Common;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            ConnectionInfoBase conninfo = new SqlConnectionInfo();
            ((SqlConnectionInfo)conninfo).ServerName = "ServerName";
            ((SqlConnectionInfo)conninfo).UserName = "UserName";
            ((SqlConnectionInfo)conninfo).Password = "Password";
            ((SqlConnectionInfo)conninfo).UseIntegratedSecurity = false;

            TraceServer trace = new TraceServer();
            trace.InitializeAsReader(conninfo, "mytdf.tdf");

            while (trace.Read())
            {
                //Statements;
                Console.WriteLine(trace["TextData"]);
            }
            Console.Read();
            trace.Close();
        }
    }
}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.