哦,那麼简单sql语句无法实现了,
参考下面的存储过程,自行修改对应表名、字段名:create procedure proc_test
as
begin
declare @keyName as int --要修改主键字段类型
declare keyName cursor for select keyName from tablename --要修改表名、主键名
open keyName
fetch keyName into @keyName
while @@FETCH_STATUS=0
begin
update tablename set xxx=CAST(rand()*5+20 AS decimal(10,1))
where keyName = @keyName --要修改表名、更新的字段名xxx、主键名
fetch next from keyName into @keyName
end
close keyName
deallocate keyName
end
-----或者-----
你可以这样:查询,复制表主键字段所有数据到excel
在excel的主键字段右边添加随机数(rand函数)
此时的excel有主键和随机数两列,导入数据库newtable
通过导入的newtable来更新原表:update tablename set tablename.fieldname=newtable.随机数
from tablename,newtable
where tablename.keyname=newtable.keyname