sql更新问题

Candbasic 2010-04-17 05:21:33
要更新表A的数据,先留个变量,更新制定行数据,例如更新第二行数据,语句应该怎么写
...全文
69 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
喜-喜 2010-04-17
  • 打赏
  • 举报
回复
-------------------获取第二行数据记录-----------------------------

select top 1 * from tb where [primary_key] not in (select top 1 [primary_key] from tb)
SQL77 2010-04-17
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 candbasic 的回复:]
引用 4 楼 sql77 的回复:
引用楼主 candbasic 的回复:
要更新表A的数据,先留个变量,更新制定行数据,例如更新第二行数据,语句应该怎么写

你要更新是EXCEL那你直接导入数据库后,数据库中一个表加个自增列呀,


不导入数据库,直接修改文件
[/Quote]
那你利用C#读取EXCEL,然后ROWS[0]来定位第一行应该可以吧,具体不太清楚,帮顶
Candbasic 2010-04-17
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 sql77 的回复:]
引用楼主 candbasic 的回复:
要更新表A的数据,先留个变量,更新制定行数据,例如更新第二行数据,语句应该怎么写

你要更新是EXCEL那你直接导入数据库后,数据库中一个表加个自增列呀,
[/Quote]

不导入数据库,直接修改文件
feixianxxx 2010-04-17
  • 打赏
  • 举报
回复
sql2005使用CTE可以灵活解决UPDATE问题

方法上面也说了
下面再举个小李子
--2005CTE  有顺序地加序号
WITH T1RN AS
(
SELECT col1, ROW_NUMBER() OVER(ORDER BY col2) AS RowNum
FROM dbo.T1
)
UPDATE T1RN SET col1 = RowNum;
-------------
select * from T1 order by col1
/*
col1 col2
----------- -----
1 A
2 A
3 A
4 B
5 B
6 C
7 C
8 C
9 C
10 C


*/

黄_瓜 2010-04-17
  • 打赏
  • 举报
回复
declare @i int
set @i=2
--2005
;with t as
(
select id=row_number(order by 排序字段),* from tb
)
update t set..... from t where id=@i
htl258_Tony 2010-04-17
  • 打赏
  • 举报
回复
SQL2005

;with t as
(
select rn=row_number()over(order by getdate()),*
from tb
)
update t set col=@col where rn=2
SQL77 2010-04-17
  • 打赏
  • 举报
回复
[Quote=引用楼主 candbasic 的回复:]
要更新表A的数据,先留个变量,更新制定行数据,例如更新第二行数据,语句应该怎么写
[/Quote]
你要更新是EXCEL那你直接导入数据库后,数据库中一个表加个自增列呀,
htl258_Tony 2010-04-17
  • 打赏
  • 举报
回复
declare @a int
set @a=2
update tb set col=@a where id=2
?
SQL77 2010-04-17
  • 打赏
  • 举报
回复
我晕,那没办法,

加个自增列来吧

SELECT IDD=IDENTITY(INT,1,1),* INTO #T FROM TB

UPDATE #T SET COL=... WHERE IDD=你想要的行


SET ROWCOUNT 行不通了,
dawugui 2010-04-17
  • 打赏
  • 举报
回复
-- sql 2000
update tb
set ...
from tb m,
(select * , px = (select count(1) from tb where id < t.id) + 1 from tb t) n
where m.id = n.id and n.px = 2



-- sql 2005
update tb
set ...
from tb m,
(select * , px = row_number() over(order by id) from tb t) n
where m.id = n.id and n.px = 2

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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