2008-08-09

使用 ADO.NET 接回 SQL Server 的 PRINT Message

常看到有人被這個問題困擾, 自己以前也曾經被這個問題所苦, 可是其實這個問題是很容易解的, 看範例:

using (SqlConnection conn = new SqlConnection("Data Source=(local);Initial Catalog=AdventureWorks;Integrated Security=SSPI"))
{
    conn.InfoMessage += new SqlInfoMessageEventHandler(SqlConnection_InfoMessage);

    conn.Open();
    SqlCommand cmd = conn.CreateCommand();
    cmd.CommandText = "DBCC CHECKIDENT ('HumanResources.Employee', NORESEED)";
    cmd.ExecuteNonQuery();
}

重點就是 SqlConnection.InfoMessage 事件, 可以在事件處理函式中以 e.Message 取得 SQL Server 所輸出的訊息!

順便介紹一個 DBCC 指令 "DBCC CHECKIDENT", 這個指令是用來檢視指定 Table 內有使用自動遞增欄位目前的值, 有需要知道或是想要重設序號為某一個新值的人可以參考該指令的用法!

沒有留言: