Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Не работает Update в запросе  [new]
Deadik
Member

Откуда:
Сообщений: 2
Добрый день.
Прошу помощи в поиске проблемы с запросом.
Имеется поле с типом nvarchar(max), которое искользуется в качестве текстового контейнера для хранения комментариев. Соответственно, нужно из приложения дописывать комментарий к существующим, не затиая их.
Мой запрос выглядит так:
myCommand.CommandText = "UPDATE [Contract] SET Comment = Comment + ' " + commentText.Text + "' WHERE id='" + GridView1.SelectedRow.Cells[2].Text + "'";

Но работает это только в случае, если в дописваемой ячейке уже что то записано. К пустой ячейке ничего не дописывается.
Подскажите, плиз, как можно с этой проблемой бороться.
28 апр 14, 10:32    [15944837]     Ответить | Цитировать Сообщить модератору
 Re: Не работает Update в запросе  [new]
Glory
Member

Откуда:
Сообщений: 104760
Deadik
К пустой ячейке ничего не дописывается.

Потому, что NULL+что угодно будет все равно NULL
28 апр 14, 10:33    [15944839]     Ответить | Цитировать Сообщить модератору
 Re: Не работает Update в запросе  [new]
китайский сервер
Member [скрыт] [заблокирован]

Откуда:
Сообщений: 3582
myCommand.CommandText = "UPDATE [Contract] SET Comment = isnull(Comment,'') + ' " + commentText.Text + "' WHERE id='" + GridView1.SelectedRow.Cells[2].Text + "'";
28 апр 14, 10:34    [15944844]     Ответить | Цитировать Сообщить модератору
 Re: Не работает Update в запросе  [new]
MrVoid
Member

Откуда:
Сообщений: 333
Смотрите Concatenate Null Yields Null в свойствах базы.
28 апр 14, 10:36    [15944853]     Ответить | Цитировать Сообщить модератору
 Re: Не работает Update в запросе  [new]
Deadik
Member

Откуда:
Сообщений: 2
Большое спасибо за советы, буду пробовать.
28 апр 14, 10:45    [15944902]     Ответить | Цитировать Сообщить модератору
 Re: Не работает Update в запросе  [new]
iap
Member

Откуда: Москва
Сообщений: 46999
MrVoid
Смотрите Concatenate Null Yields Null в свойствах базы.
Лучше на это не смотреть!
Тем более MS постоянно обещает зафиксировать этот параметр на значении ON:
Важно!
В будущей версии параметр SQL Server CONCAT_NULL_YIELDS_NULL всегда будет иметь значение ON, а приложения, явно присваивающие ему значение OFF, будут вызывать ошибку. Избегайте использования этой возможности в новых разработках и запланируйте изменение существующих приложений, в которых она применяется.
http://msdn.microsoft.com/ru-ru/library/ms176056(v=sql.110).aspx
28 апр 14, 10:48    [15944930]     Ответить | Цитировать Сообщить модератору
 Re: Не работает Update в запросе  [new]
MrVoid
Member

Откуда:
Сообщений: 333
iap
Да-да... И точку с запятой тоже сделают обязательной в конце запроса...лет так через цать....
28 апр 14, 11:07    [15945072]     Ответить | Цитировать Сообщить модератору
 Re: Не работает Update в запросе  [new]
invm
Member

Откуда: Москва
Сообщений: 9396
MrVoid
Да-да... И точку с запятой тоже сделают обязательной в конце запроса...лет так через цать....
1. Код, зависящий от настроек соединения - говнокод;
2.Опции, выставленные для соединения перекрывают соответствующие опции в БД;
3. Установив concat_null_yields_null в off, можно попрощаться с индексированными представлениями, фильтрованными индексами и т.д.

Так что совет ваш - чистой воды медвежья услуга.
28 апр 14, 11:37    [15945296]     Ответить | Цитировать Сообщить модератору
 Re: Не работает Update в запросе  [new]
MrVoid
Member

Откуда:
Сообщений: 333
invm
3. Установив concat_null_yields_null в off, можно попрощаться с ... фильтрованными индексами и т.д.

А поподробней можно?)
28 апр 14, 11:44    [15945345]     Ответить | Цитировать Сообщить модератору
 Re: Не работает Update в запросе  [new]
iap
Member

Откуда: Москва
Сообщений: 46999
MrVoid
invm
3. Установив concat_null_yields_null в off, можно попрощаться с ... фильтрованными индексами и т.д.

А поподробней можно?)
http://msdn.microsoft.com/ru-ru/library/ms176056(v=sql.100).aspx
Параметр SET CONCAT_NULL_YIELDS_NULL должен быть в состоянии ON при создании или изменении индексов в вычисляемых столбцах или индексированных представлениях. Если параметр SET CONCAT_NULL_YIELDS_NULL установлен в OFF, любое применение инструкций CREATE, UPDATE, INSERT и DELETE к таблицам с индексами на вычисляемых столбцах или к индексированным представлениям завершится ошибкой.
28 апр 14, 11:47    [15945372]     Ответить | Цитировать Сообщить модератору
 Re: Не работает Update в запросе  [new]
invm
Member

Откуда: Москва
Сообщений: 9396
MrVoid
А поподробней можно?)
http://msdn.microsoft.com/en-us/library/ms188783.aspx
Читать примечания, раздел Filtered Indexes.
28 апр 14, 12:41    [15945802]     Ответить | Цитировать Сообщить модератору
 Re: Не работает Update в запросе  [new]
MrVoid
Member

Откуда:
Сообщений: 333
invm, iap
Спасибо.
29 апр 14, 08:33    [15949984]     Ответить | Цитировать Сообщить модератору
 Re: Не работает Update в запросе  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
MrVoid
Смотрите Concatenate Null Yields Null в свойствах базы.

iap
Да-да... И точку с запятой тоже сделают обязательной в конце запроса...лет так через цать....
Тонкий троллинг?
29 апр 14, 16:02    [15953142]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить