有一张几万行的表,现在想在其中加一列作为编号,从1开始,怎么用sql语句循环搞定!!
还有就是有没好点的网址学习sql编程的!谢谢
直接数据库管理工具-表设计界面,增加一列,类型int、属性->自增,save.之后,你会发现有了一列,编号是从1开始,如果需要设置为主键,则pk,
感谢,越是基础的越是没想到
--顶一个变量 用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
如果更新语句该怎么写,为行编号的顺序无所谓,主要是每行的编号不要重复就行了,更新语句的话不是要有where条件吗
@叶落无声1: 昨天写的是 你添加的sql语句,你要改成update的话,根据where条件筛选更新
@秋壶冰月: where条件无法保证能筛选出唯一的一条数据,这样会导致编号重复,我之前这样弄导致很多编号重复了
@叶落无声1: 1.可日志回滚数据
2.清空你编号,重新生成编号
第一个看你想怎么排序 ,可以利用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 )
至于学习的网站
你把表设一个自动增长的列就行了 可以从1开始增长
感谢,越是基础的越是没想到