UPDATE SOP60300
SET SOP60300.CUSTITEMDESC = IV00101.ITEMDESC
FROM IV00101
WHERE IV00101.ITEMNMBR = SOP60300.ITEMNMBR
我需要从项目描述中更新客户描述。当我运行上面的脚本时,它给出了下面的错误消息。客户描述可以容纳的MAX是CHAR 51,项目描述是CHAR 101.我只想切断最后50个CHAR,这样语句就会运行。
应该注意我使用的是SQL Server 2008R2
Msg 8152,Level 16,State 14,Line 2
字符串或二进制数据将被截断。
答案 0 :(得分:0)
您也可以使用LEFT
。它相当于SUBSTRING(colName, 1, 1)
。
LEFT
返回具有指定字符数的字符串的左侧部分。
SET SOP60300.CUSTITEMDESC = LEFT(IV00101.ITEMDESC, 50)
因此它从列的值中获取前50个字符。
我喜欢LEFT,因为我发现它有点清洁,但实际上,无论如何都没有区别。
SQL SERVER 2008中的SQL小提琴: - http://sqlfiddle.com/#!3/ad609/1
答案 1 :(得分:-1)
SET SOP60300.CUSTITEMDESC = substring(IV00101.ITEMDESC,1,50)
那样的......
(注意保持更新的其余部分相同)