Что семантика следующего запросаСемантика .WRITE (NULL, NULL, NULL) при обновлении колонки (макс) VARBINARY
UPDATE table
SET column .WRITE(NULL, NULL, NULL)
если column
имеет VARBINARY(max)
типа и его содержание не NULL
?
Быстрый тест показывает, что запрос является не-оп:
--DROP TABLE [table]
CREATE TABLE [table] ([column] VARBINARY(max))
INSERT INTO [table] VALUES (0x12345678)
UPDATE [table]
SET [column] .WRITE(NULL, NULL, NULL)
SELECT * FROM [table]
Исполнительное это не изменяет данные в column
. Тем не менее, я не могу найти доказательства в documentation. Я что-то пропустил, или это поведение не-op может измениться?
Что означает «нет-op» для вас? Ваш синтаксис неверен, так как связанная с ним документация (см. Примеры в разделе «Обновление типов данных больших объектов»). Это работает для меня: 'update dbo.Mytable set MyColumn.Write (null, null, null)' – Pondlife
@Pondlife: Спасибо, отредактирован. Это работает и для меня, но это поведение задокументировано? – krlmlr
Я не знаю, о чем вы спрашиваете: что такое «это поведение»? Параметры документированы, и в комментариях указано, что вы не можете установить значение NULL или обновить значение столбца NULL, используя 'write'.Похоже, вы видите то, чего не ожидаете или не понимаете, но поскольку вы не показывали результатов или результатов запроса, я не уверен, что кто-то может вам сказать. Если вы опубликуете полный рабочий пример, в котором точно указано поведение, о котором вы спрашиваете, кто-то может его прояснить. – Pondlife