首页 新闻 搜索 专区 学院

sql编程问题

0
悬赏园豆:10 [已解决问题] 解决于 2014-01-01 19:11

有一张几万行的表,现在想在其中加一列作为编号,从1开始,怎么用sql语句循环搞定!!

还有就是有没好点的网址学习sql编程的!谢谢

sql
邱育华的主页 邱育华 | 初学一级 | 园豆:10
提问于:2013-12-30 18:51
< >
分享
最佳答案
0

直接数据库管理工具-表设计界面,增加一列,类型int、属性->自增,save.之后,你会发现有了一列,编号是从1开始,如果需要设置为主键,则pk,

收获园豆:10
邢少 | 专家六级 |园豆:10926 | 2013-12-31 09:30

感谢,越是基础的越是没想到

邱育华 | 园豆:10 (初学一级) | 2013-12-31 10:23
其他回答(3)
0
--顶一个变量 用while循环 
DECLARE @counter int;
SET @counter = 1;
WHILE @counter < 5  --条件()
   BEGIN
      SELECT cast( ceiling(rand()*100) as int) Random_Number --改成插入语句 将变量counter(编号)保存到数据库中
      SET @counter = @counter + 1
   END;
GO
秋壶冰月 | 园豆:5694 (大侠五级) | 2013-12-30 18:58

如果更新语句该怎么写,为行编号的顺序无所谓,主要是每行的编号不要重复就行了,更新语句的话不是要有where条件吗

支持(0) 反对(0) 邱育华 | 园豆:10 (初学一级) | 2013-12-31 08:48

@叶落无声1: 昨天写的是 你添加的sql语句,你要改成update的话,根据where条件筛选更新

支持(0) 反对(0) 秋壶冰月 | 园豆:5694 (大侠五级) | 2013-12-31 08:52

@秋壶冰月: where条件无法保证能筛选出唯一的一条数据,这样会导致编号重复,我之前这样弄导致很多编号重复了

支持(0) 反对(0) 邱育华 | 园豆:10 (初学一级) | 2013-12-31 08:57

@叶落无声1: 1.可日志回滚数据

2.清空你编号,重新生成编号

支持(1) 反对(0) 秋壶冰月 | 园豆:5694 (大侠五级) | 2013-12-31 09:23
0

第一个看你想怎么排序 ,可以利用rownum

SELECT ROW_NUMBER() OVER(ORDER BY ordered DESC) AS rownum, ordered

FROM Orders

ORDER BY rownum DESC

然后 用同一个表进行关联更新

update customers a

set city_name=(select b.city_name from tmp_cust_city b where b.customer_id=a.customer_id)

where exists (select 1

from tmp_cust_city b

where b.customer_id=a.customer_id

)

update 超过2个值

update customers a

set (city_name,customer_type)=(select b.city_name,b.customer_type

from tmp_cust_city b

where b.customer_id=a.customer_id)

where exists (select 1

from tmp_cust_city b

where b.customer_id=a.customer_id

)

至于学习的网站

http://www.51test.net/sqlServer/

http://www.51cto.com/html/2005/1130/12708.htm等等了,其实还有很多。

aehyok | 园豆:1012 (小虾三级) | 2013-12-30 19:04
0

你把表设一个自动增长的列就行了  可以从1开始增长

Albert Fei | 园豆:2102 (老鸟四级) | 2013-12-31 09:35

感谢,越是基础的越是没想到

支持(0) 反对(0) 邱育华 | 园豆:10 (初学一级) | 2013-12-31 10:23
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册