select A.a where A.ID=31 into @tmp; update A set A.a = @tmp;
update A set col = (select col from A where id = 31 limit 1)
update A set col = (select col from A where id = 31 limit 1)这一种在MYSQL中是不好用的,在SQL2000中没有事。
create proc upAUpdateFieldValeByID ( @FieldName varchar(255), @ID varchar(255) ) as begin exec('update A set ' + @FieldName + ' = (select ' + @FieldName ' from A where id = ' + @ID + ')') end
update A set A.a = @tmp;
(
@FieldName varchar(255),
@ID varchar(255)
)
as
begin
exec('update A set ' + @FieldName + ' = (select ' + @FieldName ' from A where id = ' + @ID + ')')
end