我最后想先把字段值取出来,然后加在一起再update,但这样太麻烦了,我能力有限,请大家教一下快捷方法
解决方案 »
- sql代理服务问题
- ……紧急……(100分)高分求教数据库高手
- 更新数据的问题——不好意思新手,没有分哈。。
- 求一条较难sql语句
- server 2008中的一个库坏了,sql正在自动修复,耗费io相当高,怎么把自动修复给停了
- 求一个我想应该不复杂的SQL语句,请大家帮忙!谢谢!
- 怎样查看查询数据库所用的时间??急
- 如何将存储过程返回的结果集放入一个表变量中? 或临时表中?
- sql server跨库查询的性能问题
- 如何把本地SQL数据库上传到网上SQL主机上?
- 关于存储过程及参数化SQL的漏洞-请高手不吝赐教
- 求一个存储过程(建表和插入在一个存储过程中) 当前时间为表名,有id,name两个属性,同时插入另一个表的数据,的存储过程
--> 测试数据:[表一]
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=2update [表一]
set [zym]=[zym]+@name where [xh]=@xhselect * FROM [表一]
--我的一个例子,没任何问题
/*
xh zym
1 资源1
2 资源2zyn
3 资源3
4 资源4
5 资源5
6 资源6
*/
引用 1 楼 的回复:你得上数据。目测没什么问题
[/Quote]随便举个例子,表中的数据是:ID-11, Name-金刚葫芦娃,Address-上东街,然后我update table Name=Name+'哈哈' where ID=11
执行没返回错误,但再一查看表,就成了 11,0,上东街
update table Name=Name+'哈哈' where ID=11我就直接用的这查询的呀
Table 中Name 字段是否可以为空? 如果可以,那么相应ID(=11)的数据有没有Name 为空的数据,如果有这样的数据你的这种Update会出异常。
现在是这样,table里面我插入了一条数据
11 | 金刚葫芦娃 | 上东街
然后我想把Name这个字段改一下,
update table Name=Name+'和三毛' where ID=11结果最后就直接成这样了
11 | 0 | 上东街
set name = isNull(name, '') + @Name
where id = @ID
确实有点奇怪,可以把建表代码,和你的测试数据Script出来,让大家测试一下吗?
行,没问题,我也只是写了一个测试代码,你也可以自己试试的
建表create table test(id integer, Name nvarchar(20), Address nvarchar(50));
插入数据insert into test(id, Name, Address) values (11, '金刚葫芦娃', '上东街');
更新字段update test set Name=Name+'和三毛' where id=11;
我这里运行一切正常,可能和你的运行环境有关. SQLLite3是个查询编辑器吗?是不是它的Bug?
一切正常?你是在sqlite3环境中执行的么?你不要说你不知道sqlite?我要是在sql中执行那也是正常的
Set nVNo = nVNo + 1
WHERE
nAcctID = 2
AND cYear = 2014
AND cMon = 1
AND cVKind = '记'
AND nVNo >= 2
AND bTmp = 0这样的SQL有啥问题?