24 июня 2012 г.

Использование SQL CLR в Microsoft SQL Server 2008


Microsoft SQL Server и язык T -SQL обладают достаточно широким набором команд, параметров и функций, которые позволяют разработчику выполнять практически любые запросы к базам данных. Однако, в некоторых ситуациях данной инфраструктуры оказывается недостаточно для удовлетворения самых изощренных потребностей разработчиков. Здесь на помощь приходит расширение SQL Server под названием SQL CLR.
SQL CLR – это технология, позволяющая значительно увеличить гибкость и расширить возможности разработчиков при работе с базами данных в SQL Server. При помощи SQL CLR возможно писать собственные функции, хранимые процедуры и триггеры на языках программирования C# или Visual Basic, а затем импортировать этот код в среду SQL Server и использовать его при написании запросов на языке T-SQL. Поскольку такой язык как C# предоставляет разработчику гораздо более широкий набор возможностей, чем T-SQL, импортирование C# функций в SQL Server будет отличным решением многих задач, требующих специфичных вычислений.

17 июня 2012 г.

Управление транзакциями в C#


В прошлой статье мы познакомились с таким понятием, как транзакция. Было рассмотрено, каким образом можно управлять транзакциями на уровне SQL Server. Сегодня мы научимся создавать и использовать транзакции из программного кода C#.
В .NET существуют два типа транзакций: локальная транзакция и распределенная транзакция. Локальные транзакции работают в пределах одного соединения к базе данных, а распределенные способны отслеживать команды к нескольким источникам данных одновременно.

10 июня 2012 г.

Управление транзакциями в Microsoft SQL Server 2008


Сегодня мы обсудим одно из фундаментальных понятий в SQL Server 2008 – транзакции. Транзакции позволяют управлять набором команд, которые выполняются в базе данных, как единым целым. Использование транзакции предоставляют разработчику следующие преимущества:
  1. Если две команды работают внутри одной транзакции – то будут выполнены обе команды, либо ни одной;
  2. Если какая-либо команда внутри транзакции завершится с ошибкой – все команды транзакции будут отмены и данные вернутся в то состояние, в каком они были до начала транзакции;
  3. Во время выполнения транзакции данные могут оставаться изолированными и недоступными для других транзакций;
  4. После успешного выполнения команды фиксации транзакции данные гарантированно сохранятся в базе.