UpdateSqlQuery

Sql-запрос для обновления полей в таблице, для которых значения соответствующих параметров, переданных в запрос, равны NULL.

Шаблон UpdateSqlQuery

<SqlQuery Name="" Type="Update">
  <Updates>
    <Update TableName="" Type="" Parameter="" OnlyLast="" />
  </Updates>
  <UpdateFields>
    <UpdateField Name="" Value="" />
  </UpdateFields>
  <Text></Text>
</SqlQuery>

Описание UpdateSqlQuery

<SqlQuery Name="SqlQueryName" Type="Update">
  <!--Тэги, общие для всех sql-запросов-->
  <!--Тэги, специфичные для UpdateSqlQuery-->
</SqlQuery>

Тэги, специфичные для UpdateSqlQuery

UpdateFields

Поля для обновления и их значения.

Необязательный тэг. Значение тэга <UpdateFields>: список тэгов <UpdateField>.

<UpdateFields>
  <UpdateField Name="field1_name" Value="Parameter1" />
  <UpdateField Name="field2_name" Value="Parameter2" />
  <UpdateField Name="field3_name" Value="Parameter3" />
</UpdateFields>

Тэг <UpdateField>

Поле таблицы для обновления значения.

Необязательный тэг. Значение тэга <UpdateField>: не ожидается.

Атрибуты тэга <UpdateField>

Name

Название поля в обновляемой таблице.

Обязательный атрибут. Ожидается название одного из полей обновляемой таблицы.

Value

Имя параметра, который передает значение в это поле.

Обязательный атрибут. Ожидается название одного из параметров, переданных в запрос.

Text

Содержит sql-запрос.

Обязательный тэг. Значение тэга <Text>: текст sql-запроса.

<Text>
  SQL-query
</Text>

Текст sql-запроса поддерживает переменные типа {Parameter}, заменяемые при его выполнении значениями параметров с соответствующими названиями, передаваемых клиентом.

Текст sql-запроса поддерживает переменную {UpdateFields}, заменяемую при его выполнении конструкцией следующего вида:

field1_name = field1_value,

field2_name = field2_value,

field3_name = field3_value

где field<i>_name - название поля в обновляемой таблице, а field<i>_value - подставленное значение параметра Parameter<i>.

Особенность такой подстановки заключается в том, что, если очередное значение field<i>_value равно NULL, то поле field2_name исключается из конструкции подстановки. Таким образом, в таблице будут обновлены только те поля, значения для которых были переданы неравные NULL.

Например:

Название поля 1 - title

Название поля 2 - capacity

Название поля 3 - comment

Значение параметра 1 - "новый заголовок"

Значение параметра 2 - NULL

Значение параметра 3 - "новый комментарий"

Тогда переменная {UpdateFields} будет заменена в запросе следующей конструкцией:

title = 'новый заголовок',

comment = 'новый комментарий'

Last updated