Расширенные хранимые процедуры SQL Server - PullRequest
0 голосов
/ 25 февраля 2012

Я знаю, что расширенные хранимые процедуры - это вчерашние новости, но они все еще имеют свое место.

Кто-нибудь знает, как получить текущий идентификатор соединения из расширенной хранимой процедуры?

Спасибо.

1 Ответ

0 голосов
/ 25 февраля 2012

Используя расширенные хранимые процедуры из .NET, ваш код выполняется из CLR, размещенного в SQLServer.По этой причине вам не нужно «повторно регистрировать», вы можете подключиться к существующему контексту, используя контекстное соединение строка «Context Connection = true».Затем вы можете получить идентификатор сеанса текущего пользовательского процесса, используя команду @@SPID t-sql.

Попробуйте этот фрагмент кода:

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