在T-SQL中创建一个循环函数

时间:2015-03-09 09:57:53

标签: sql tsql

我有一个表包括三个字段tblUser(ID,parentID,count)。 parentID引用tblUser(ID)

我希望创建函数,参数是表中的ID。该功能将选择parentID并设置count = count + 1 where ID = parentID

我想使用while loopfor()重复操作until ID == parentID

3 个答案:

答案 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