日期:2014-05-18  浏览次数:20527 次

Update 只更新部分内容,可否实现?大大们帮忙看看.!
比如,数据如下.
在.user表中的字段.
用户名 数据.
123 0xAAAAAA1111FFFFF
222 0xBBBBBB1233EEEEE
333 0xCCCCCC5123DDDDD
444 0xDDDDDD8888FFFFF


那么.什么办法.只更新.数据库中的.前6个数据. 跟.后5个数据.
如.只更新.123 0xAAAAAA1111FFFFF
中的.0xAAAAAA1111FFFFF

如:
Update user set 数据=0x888888111199999 Where 用户名='123'
是直接修改.但是前提是我查到了.数据中间部分是.1111.但是每次都去找太麻烦.
能否不知道中间数据的情况下.(不知道中间数为.1111)直接修改掉.首,跟尾部的数据呢?

------解决方案--------------------
如果“数据”是字符型的,请尝试以下方法
SQL code
if object_id('[user]') is not null drop table [user]
go
create table [user]([用户名] int,[数据] varchar(30))
insert [user]
select 123,'0xAAAAAA1111FFFFF' union all
select 222,'0xBBBBBB1233EEEEE' union all
select 333,'0xCCCCCC5123DDDDD' union all
select 444,'0xDDDDDD8888FFFFF'
go

Update [user] 
  Set 数据=convert(varbinary(8),stuff(left(数据,len(数据)-5),3,6,'888888')+'99999') 
Where 用户名='123'
go

select * from [user]
/**
用户名         数据
----------- ------------------------------
123         0x888888111199999
222         0xBBBBBB1233EEEEE
333         0xCCCCCC5123DDDDD
444         0xDDDDDD8888FFFFF

(4 行受影响)
**/