在将列大小从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'
任何帮助,将不胜感激。
答案 0 :(得分:1)
完全不使用子查询:
UPDATE table_name
SET comments = SUBSTRING(comments, 1, 299)
WHERE LEN(comments ) > 300
AND person_id = '1234567890'
答案 1 :(得分:0)
这需要在更改之前完成。如果更改的列的数据长度不超过300个字符,则可以进行更改。否则,SQL Server会报错。