使用len()作为更新语句的参数

时间:2014-05-23 17:54:24

标签: sql-server tsql

是否可以运行像

这样的更新
update products set title = name+' - '+ id where len(name+' - '+id)  <  255

在mssql中?

我一直在尝试更新文本字段,但如果结果超过255个字符,我就无法执行此操作。根据我们的购物车提供商。

修改 对不起,我没有详细说明我正在寻找的东西,我已经尝试过了,并且收到错误消息说结果会被截断。我想我真正想问的是,如果更新数据短于255个字符,尝试仅更新的示例中有一种方法可以完成我想要做的事情。

1 个答案:

答案 0 :(得分:1)

除非标题字段确实不是255,否则您的代码应该有效。SQL Fiddle这就是我所做的工作。

create table #temp 
(
    name varchar(20),
    Title varchar(20),
    id varchar(3)
)

Insert into #temp
SELECT '1111111111', '', 100
UNION 
SELECT '111111111111', '', 101
UNION 
SELECT '11111111111111', '', 102
UNION 
SELECT '1111111111111111', '', 103
UNION 
SELECT '111111111111111111', '', 104


UPDATE #temp
SET title = name+' - '+ id 
WHERE len(name+' - '+id)  <=  20


SELECT * FROM #Temp