我有一个表包括三个字段tblUser(ID,parentID,count)。 parentID引用tblUser(ID)
我希望创建函数,参数是表中的ID。该功能将选择parentID
并设置count = count + 1 where ID = parentID
。
我想使用while loop
或for()
重复操作until ID == parentID
答案 0 :(得分:1)
通常,您希望避免在SQL中使用循环。最好将数据作为一个集合处理而不是一次处理,因为循环需要更多的资源。
此外,在您给出的示例中,您没有说明为什么需要使用循环。在这种情况下,似乎更容易简单地说
set Count = ParentID
现在我已经警告过你使用循环,这是一个简单的while循环示例:
Declare @Count integer = 0
,@ParentID integer
Select @ParentID = ParentID From Table
(your where clause goes here)
While @Count <= @ParentID
BEGIN
(whatever you want to do in your loop)
Set @Count = @Count + 1
END
答案 1 :(得分:1)
据我了解你的问题,你不能在一个声明中做到这一点吗?
update theTable
set count = count + 1
where ID = parentID
正如Aidan所说,通常你不想循环使用SQL,也不一般需要。
答案 2 :(得分:1)
SQL是一种声明性语言,你告诉它你想要什么,让查询引擎决定如何最好地做到这一点
CREATE PROCEDURE IncrementCount @parentID int
AS
UPDATE theTable
SET count = count + 1
WHERE ID = parentID