Как обновить и установить значение столбца, используя подстроку внутри подзапроса? - PullRequest
0 голосов
/ 28 января 2019

При изменении размера столбца с MAX до 300 символов я хочу обновить все значения в столбце до менее 300 символов, если len() > 300.

UPDATE table_name 
SET comments = (SELECT SUBSTRING(comments, 1, 299) 
                FROM table_name 
                WHERE LEN(comments) > 300) 
WHERE LEN(comments ) > 300 
  AND person_id = '1234567890'

Любая помощь будетвысоко ценится.

Ответы [ 2 ]

0 голосов
/ 28 января 2019

это необходимо сделать перед изменением.Изменение может быть выполнено, если измененный столбец не содержит данных, длина которых превышает 300 символов.В противном случае SQL-сервер выдает ошибку.

Проверьте это

0 голосов
/ 28 января 2019

Не используйте подзапрос вообще:

UPDATE table_name 
SET comments = SUBSTRING(comments, 1, 299) 
WHERE LEN(comments ) > 300 
  AND person_id = '1234567890'
...