T-SQL присваивает NULL текстовое поле типа - PullRequest
0 голосов
/ 16 марта 2012

Я пытаюсь выполнить следующий код, чтобы заменить все пустые строки на NULL, где тип столбца - TEXT. Но этот код, похоже, ничего не делает.

UPDATE mytable SET textField = NULL WHERE DATALENGTH(textField)=0

Как правильно обнулить этот столбец?

UPD. ОК, это действительно работа. Это были просто странные данные, показывающие Embarcadero DBArtasian

Ответы [ 4 ]

2 голосов
/ 20 ноября 2012

Пожалуйста, преобразуйте текстовое поле в varchar, поскольку LEN нельзя использовать в текстовых полях. Это сработало для меня

ОБНОВЛЕНИЕ mytable SET textField = NULL ГДЕ ЛЕН (конвертировать (varchar (1000), textField)) = 0

2 голосов
/ 16 марта 2012

Ваш путь правильный. Поиграйте немного с CAST и RTRIM, возможно, у вас есть немного места на поле.

0 голосов
/ 16 марта 2012
UPDATE mytable 
SET textField = NULL 
WHERE LEN(LTRIM(RTRIM(textField))) = 0
0 голосов
/ 16 марта 2012

, вероятно, условие where ничего не возвращает

попробуйте сделать следующее, чтобы увидеть, сколько записей будет затронуто

SELECT * from Table WHERE DATALENGTH(textField)=0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...