2012-02-24 27 views
0

拡張ストアドプロシージャは昨日のニュースですが、依然としてその場所があります。SQL Server拡張ストアドプロシージャ

拡張ストアドプロシージャ内から現在の接続IDを取得する方法を知っている人はいますか?

ありがとうございました。

答えて

0

.NETの拡張ストアドプロシージャを使用すると、コードはSQLServerにホストされているCLRから実行されます。この理由から、 "relogin"する必要はありません。context connection文字列 "Context Connection = true"を使用して既存のコンテキストに接続できます。次に、@@SPID t-sqlコマンドを使用して、現在のユーザープロセスのセッションIDを取得できます。

このコードのスニペットを試してみてください:

using (var cnn = new SqlConnection("context connection=true")) 
{ 
    cnn.Open();  
    using(var cmd = new SqlCommand("SELECT @@SPID", cnn)) 
    { 
     Console.WriteLine(Convert.ToString(cmd.ExecuteScalar())); 
    } 
}