如表 table1
emp_id emp_name emp_num
s001 小张 NULL
s002 小王 NULL
s003 小李 NULL
s004 小刘 NULL
. . .
. . .
. . .
现要将table1表中的emp_num字段值改为1800到2200之间的随机数,SQL语句实现不了的话delphi程序代码也成,高手请帮帮忙,谢谢了~!
解决方案 »
- 为什么可用分不见涨呢?好几天了
- 请问:INDY UDP 为什么分SERVER 和CLIENT呢?
- 【散尽余分】特别在杭州的朋友,方便的留联系方式(女生请先考虑清楚...嘎嘎)
- 四个不相干的问题.本来不是放在这个版块,只是因为感觉 这我高手好像多!!!
- 寻解决方案?
- 我怎样利用*_date和*_log两个文件创建数据库?
- ===弱智问题?什么是MSHTML 6.0,有什么用?怎么用?===
- 存储过程请教,紧急
- 请教哪里有介绍Delphi的学习网站?
- Delphi的程序,所有的Form都在App中初始化是创建(Application.CreateForm),这样岂不是很耗资源,想在用到时Create,在关闭时释放资源,各位有什么方法???
- 关于dblookupcombobox的效率
- 这样的查询结果怎么做?在线等--
表结构:
CREATE TABLE [TABLE1] (
[emp_id] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[emp_name] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[emp_num] [char] (10) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO输入数据:
INSERT INTO [table1] ([emp_id],[emp_name],[emp_num]) values ('s001 ','小张 ','1976 ')
INSERT INTO [table1] ([emp_id],[emp_name],[emp_num]) values ('s002 ','小王 ','1948 ')
INSERT INTO [table1] ([emp_id],[emp_name],[emp_num]) values ('s003 ','小李 ','1993 ')
INSERT INTO [table1] ([emp_id],[emp_name],[emp_num]) values ('s004 ','小刘 ','1971 ')*/DECLARE c CURSOR
FOR SELECT emp_id FROM table1
OPEN cDECLARE @emp_id char(10) FETCH NEXT FROM c INTO @emp_id
update TABLE1 set emp_num =cast(round(RAND ()*10000,0) as int)%400+1799 where emp_id=@emp_id
WHILE @@FETCH_STATUS = 0
BEGINFETCH NEXT FROM c INTO @emp_idupdate TABLE1 set emp_num =cast(round(RAND ()*10000,0) as int)%400+1799 where emp_id=@emp_idENDCLOSE c
DEALLOCATE cselect * from table1/*
s001 小张 1976
s002 小王 1948
s003 小李 1993
s004 小刘 1971
*/
OPEN #c
DECLARE @emp_id char(10)
FETCH NEXT FROM #c INTO @emp_id
WHILE @@FETCH_STATUS=0
BEGIN
UPDATE TABLE1 SET emp_num=CAST(ROUND(RAND()*1000,0)AS INT) %401+1800
WHERE CURRENT OF #c
FETCH NEXT FROM #c INTO @emp_id
END
CLOSE #c
DEALLOCATE #c