+ -
当前位置:首页 → 问答吧 → [玻璃鱼V]在线等,T-SQL中,字符串相加问题

[玻璃鱼V]在线等,T-SQL中,字符串相加问题

时间:2011-12-23

来源:互联网

表A中有一列path为附件地址,数据为 "2011/12/abcd.rar",现在想修改表中所有该列数据为 ‘data/attachment/forum/’加上原有的数据,我写的T-SQL语句为:

udate 表 set path='./data/attachment/forum/'+path

更新结果却为 201112。

如果要达到预想效果,SQL语句该怎么改呢?

作者: teita731   发布时间: 2011-12-23

udate 表 set path='./data/attachment/forum/'+CAST(path AS VARCHAR(20))


你说的结果不太可能,是不是看错了

作者: Haiwer   发布时间: 2011-12-23

说下PATH字段的数据类型,CHAR(?)还是VARCHAR(?),其中?多少

作者: Haiwer   发布时间: 2011-12-23

如果path为字符串型,你的语句没有错.
udate 表 set path='./data/attachment/forum/'+path

作者: dawugui   发布时间: 2011-12-23

SQL code

create table #p
(
  path nvarchar(50)
)

insert #p
select '2011/12/abcd.rar' union all
select '2011/12/abcd1.rar' union all
select '2011/12/abcd2.rar'


select * from #p
update #p set path='./data/attachment/forum/'+path
select * from #p

drop table #p

--2011/12/abcd.rar
--2011/12/abcd1.rar
--2011/12/abcd2.rar


--./data/attachment/forum/2011/12/abcd.rar
--./data/attachment/forum/2011/12/abcd1.rar
--./data/attachment/forum/2011/12/abcd2.rar



path字段是怎么定义的?

作者: cscarl   发布时间: 2011-12-23

SQL code
create table tbs
(
id int,
[path] varchar(100)
)
insert into tbs values(1,'2011/12/abcd.rar')
update tbs set path='data/attachment/forum'+path

select * from tbs
id          path
----------- ----------------------------------------------------------------------------------------------------
1           data/attachment/forum2011/12/abcd.rar

(1 行受影响)



作者: szstephenzhou   发布时间: 2011-12-23

path 的类型是什么,很关键,如果不是varchar()的话就要convert()

作者: szstephenzhou   发布时间: 2011-12-23

也许楼主该检查一下path字段定义的类型及其长度.

作者: dawugui   发布时间: 2011-12-23

udate 表 set path='./data/attachment/forum/'+path
不可能是你说的201112,是不是少说了代码

作者: jinkaha   发布时间: 2011-12-23

path的长度修改长点吧 

alter table alter path varchar(1000)

作者: fredrickhu   发布时间: 2011-12-23

path的类型为:varchar(230)

但是代码执行结果就是201112,很奇怪

作者: teita731   发布时间: 2011-12-23

是不是执行错什么别的语句了

作者: pengxuan   发布时间: 2011-12-23

SQL 查询: SELECT * FROM `pre_scheduled_books` WHERE 1 LIMIT 0, 30 ; 
行数: 1 

aid cid sid itemid name path  
4 39 37 12 模块说明.txt 2011/12/abc.rar 

SQL 查询: 
update pre_scheduled_books set '.data/attachment/forum/'+path;
select * from pre_scheduled_books where 1 LIMIT 0, 30 ; 
行数: 1 

aid cid sid itemid name path  
4 39 37 12 模块说明.txt 2011 

作者: teita731   发布时间: 2011-12-23