日期:2014-05-17  浏览次数:20479 次

sqlite3 更新字段的问题,请各位大神来指点迷津
如题,我想实现

update table Name=Name+@Name where ID=@ID

这条语句,但是有问题,执行是成功了,结果Name这个字段变为0了,研究了好久,未果,请教各位大神,这语句该怎么写?谢谢!

------解决方案--------------------
引用:
我最后想先把字段值取出来,然后加在一起再update,但这样太麻烦了,我能力有限,请大家教一下快捷方法


你得上数据。目测没什么问题
------解决方案--------------------

--> 测试数据:[表一]
if object_id('[表一]') is not null drop table [表一]
create table [表一]([xh] int,[zym] varchar(10))
insert [表一]
select 1,'资源1' union all
select 2,'资源2' union all
select 3,'资源3' union all
select 4,'资源4' union all
select 5,'资源5' union all
select 6,'资源6'


declare @name varchar(3)
set @name='zyn'
declare @xh int
set @xh=2

update [表一]
set [zym]=[zym]+@name where [xh]=@xh

select * FROM [表一]
--我的一个例子,没任何问题
/*
xh zym
1 资源1
2 资源2zyn
3 资源3
4 资源4
5 资源5
6 资源6
*/

------解决方案--------------------
引用:
引用:
引用:
@Name变量有没有初始化?如果没有初始化,update后就是NUll

我是直接传值进去呀

SQL code

update table Name=Name+'哈哈' where ID=11


这个‘哈哈’不是就初始化了么?


Table 中Name 字段是否可以为空? 如果可以,那么相应ID(=11)的数据有……



 update t 
 set name = isNull(name, '') + @Name 
 where id = @ID

------解决方案--------------------
引用:
引用:


一切正常?你是在sqlite3环境中执行的么?你不要说你不知道sqlite?我要是在sql中执行那也是正常的

确实不知道sqllite是什么?这里讨论的问题好像都是基于SQL Server的问题