批量更新数据库记录的SQL

likegod 2010-07-02 03:26:56
数据库里有一张表Table1,格式为:

[ID] int
[Content] nvarchar(4000)

我现在在Content字段里,随机插入“22”的字符串,即:

原来:1 bbbbbb
2 dddddd
现在:1 bbbbb22b
2 d22ddddd

请问这样的SQL如何写?
谢谢!
...全文
232 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
htl258_Tony 2010-07-07
  • 打赏
  • 举报
回复
一楼的可以,NEWID函数少个()

UPDATE TABLE1 SET CONTENT=STUFF(CONTENT,ABS(CHECKSUM(NEWID()))%LEN(CONTENT)+1,0,'22')
jsjwlxh 2010-07-07
  • 打赏
  • 举报
回复
UPDATE TABLE1 SET CONTENT=STUFF(CONTENT,ABS(CHECKSUM(NEWID))%LEN(CONTENT)+1,0,'22')


随机确实不好写啊
不确定 呀
weigp2010 2010-07-07
  • 打赏
  • 举报
回复
就用SUBSTRING函数吧
SQL_Hhy 2010-07-03
  • 打赏
  • 举报
回复
update test_1 set Content=STUFF(Content,cast(ceiling(RAND(CHECKSUM(NEWID()))*LEN(content))as int),0,'22')
yxy517023902 2010-07-03
  • 打赏
  • 举报
回复
可以尝试另外一种方法,Java代码连接数据库,将字段取出,进行操作后再返回,可以实现!
永生天地 2010-07-02
  • 打赏
  • 举报
回复
小麦放假了。。
feixianxxx 2010-07-02
  • 打赏
  • 举报
回复
--USE  stuff(col,pos,0,'22')
--because
select STUFF('abcd',2,0,'22') -------- a22bcd

--so
create table test_1
(
id int,
[Content] nvarchar(4000)
)
insert test_1 select
1,'bbbbbb' union select
2,'dddddd'
go
update test_1
set Content=STUFF(Content,cast(ceiling(RAND(CHECKSUM(NEWID()))*LEN(content))as int),0,'22')
go
select * from test_1
xyj052 2010-07-02
  • 打赏
  • 举报
回复
一次性估计打不到你要的效果,3楼的做下循环,就可以达到你要的效果了
Mr_Nice 2010-07-02
  • 打赏
  • 举报
回复
DECLARE  @T TABLE([ID] INT, [Content] nvarchar(4000))

INSERT INTO @T
SELECT '1','bbbbbbbb' UNION ALL
SELECT '2','dddddddd'

DECLARE @i FLOAT
SELECT @i = RAND()

SELECT id,
SUBSTRING([content],0,CONVERT(INT,RIGHT(CONVERT(VARCHAR,@i),1)))
+'22'
+SUBSTRING([content],CONVERT(INT,RIGHT(CONVERT(VARCHAR,@i),1))+2,LEN([content]))
FROM @T


参考!
guguda2008 2010-07-02
  • 打赏
  • 举报
回复
UPDATE TABLE1 SET CONTENT=STUFF(CONTENT,ABS(CHECKSUM(NEWID))%LEN(CONTENT)+1,0,'22')
Mr_Nice 2010-07-02
  • 打赏
  • 举报
回复
中间插入确实不好弄啊。 替换的话可以考虑用stuff()

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧