SQL SERVER. Автономные транзакции. Autonomous transaction.
При реализации процесса логирования произведенных операций возникает вопрос о необходимости сам процесс записи в лог проводить в автономной транзакции. В СУБД Oracle есть такой механизм вида: pragma autonomous_transaction ; СУБД MS SQL Server не поддерживает автономные транзакции, но есть 3 пути решения заданной задачи: 1. Вызов SQLCLR - процедуры в транзакции. 2. Использование табличной переменной ( table variable ). 3. Вызов хранимой процедуры через Linked Server к этому же серверу со значением "True" параметров RPC и RPC Out. Очень хорошо про способы осуществить автономную транзакцию описаны в статье http://blogs.msdn.com/b/sqlprogrammability/archive/2008/08/22/how-to-create-an-autonomous-transaction-in-sql-server-2008.aspx. Только здесь не раскрыт вариант автономной транзакции с помощью SQLCLR. Его и постараюсь здесь привести в пример. Подготовка сервера для выполнения CLR -