Tsql T-SQL中的循环,如何获取字段值

Tsql T-SQL中的循环,如何获取字段值,tsql,stored-procedures,Tsql,Stored Procedures,在SQLServer2005数据库中,我有一个存储过程。我有约会,把他们放在临时桌上。我想在这个临时表中循环,根据一些字段的值更改其他字段的值并进行一些检查。每行我都要这样做 我该怎么做 谢谢 更新1 BEGIN SET NOCOUNT ON --Create temp table CREATE TABLE #MyTempTable( id int IDENTITY(1, 1), PriceMax int,

在SQLServer2005数据库中,我有一个存储过程。我有约会,把他们放在临时桌上。我想在这个临时表中循环,根据一些字段的值更改其他字段的值并进行一些检查。每行我都要这样做

我该怎么做

谢谢

更新1

BEGIN
    SET NOCOUNT ON

    --Create temp table
    CREATE TABLE #MyTempTable(
        id      int IDENTITY(1, 1),
        PriceMax    int,
        PriceMin    int
    )

    -- Insert in temp table
    INSERT INTO #tmpReconciliation (PriceMax, PriceMin) 
        SELECT  PriceMax    = PriceMaxProduct,
                PriceMin    = PriceMinProduct
        FROM    Products

    DECLARE @RowNum int
    SELECT  @RowNum = Count(*) From #MyTempTable 
    WHILE @RowNum > 0                          
    BEGIN   

        if(....)
            PriceMin = 0
                 ....

    END

    --Drop temp table
    DROP TABLE #MyTempTable

END

难道你不能只用一个游标,在游标内部运行一个update语句吗


游标:

我阅读了和的MSDN文档

例如,假设您的临时表名为Employee:

DECLARE @Emp_id int

DECLARE Employee_Cursor CURSOR FOR
SELECT EmployeeID 
FROM Employee;

OPEN Employee_Cursor;
FETCH NEXT FROM Employee_Cursor INTO @Emp_id;
WHILE @@FETCH_STATUS = 0
   BEGIN
      -- Here your actions
      PRINT @Emp_id
      FETCH NEXT FROM Employee_Cursor INTO @Emp_id;
   END;
CLOSE Employee_Cursor;
DEALLOCATE Employee_Cursor;
GO
在这里,我决定打印EmployeeId,但一切都是可能的


告诉我们您的支票是什么,如果需要更多帮助,您的临时表是什么样子的。

您能详细说明一下吗?可能不需要循环/while/光标。如果您详细说明并发布一些代码,我们可能会给您一个基于集合的语句来完成您需要的操作。请查看然后编辑您的问题。@Kris-I Brad是对的,告诉我们您的检查条件以及您需要更新的内容,您可能不需要光标就可以进行更新。@LaGrandMere我需要一些可以正常工作的东西。。。。我不喜欢t-SQL,我是C++的家伙:)+!好的链接和一个好的例子。我想重申@Brad在上面的评论,即您很可能不需要用光标迭代这些值。@wcm是的,@Brad和您都是对的。让我们拭目以待@Kris-I更新他的需求。