2011-11-18 67 views
1

我有表id, title, showCount如何使用select和update创建存储过程

我需要从表中得到TOP 10行并将其设置为showCount +1

这是怎么回事?

+1

首先告诉我们你试过了什么? –

+0

这是什么意思“顶”? –

+0

@skk,我没有试过。我创建了一个请求sql SELECT TOP。和10请求UPDATE showCount。 –

回答

0

我不明白你的目的,但你可以试试这个

CREATE TABLE #tbl (id int identity(1,1), title varchar(50), showCount int) 

INSERT INTO #tbl (title, showCount) 
VALUES ('q',1),('qw',2),('qe',3),('qr',4),('qt',5),('qy',6),('qu',7),('qh',8),('qx',9),('qs',10), ('qs',100) 


UPDATE T1 
SET T1.showCount=T1.showCount+1 
FROM #tbl T1 
    JOIN (SELECT TOP 10 id, showCount 
      FROM #tbl) T2 ON T1.id=T2.id 

SELECT * 
FROM #tbl 

DROP TABLE #tbl 

而且,你要明白,在这个例子中TOP 10行将会以随机顺序进行更新。

您可以在Books OnLine(F1)中找到如何CREATE PROCEDURE

+1

查询中的前10条记录按“随机”排序,通常情况并非如此:-)。 –

+0

@MichałPowaga我不知道如何用英语说,但在俄罗斯我们说:这是一个问题,这是一个答案。 –

+0

不知何故,你是对的:-)。 –

0
CREATE PROCEDURE YourProceduresNameHere 

AS 

-- Put the code you want to run here 

您可能会发现the documentation有趣。