两行同时更新

时间:2014-12-18 04:48:32

标签: sql

使用while循环和表变量时,我遇到了一个非常奇怪的问题。请在下面找到我的代码。

表变量 - uniqueconsolidationkey,包含以下列

  1. Rowid int identity primary
  2. DocumentId varchar value
  3. Consolidationkey。
  4. 首先,我们在表变量中插入不同的合并值。

    这是一个简单的插入。从另一个表中选择数据。

    现在,我们在每行中应用while循环,并使用documentid更新表变量。请参阅下面的代码。

    Rowno = 1且rowcount在我们的表变量

    中没有行
    While(rowcount>rowno)
        Begin
        select @docid=some query to fetch milli seconds value plus some other varchar data
    
        If(@prevdocid<>@docid)
            Begin
                Update @uniqueconsolidationkey
                Set documentid=@docid
                Where rowid=rowno
    
                Set rowno=rowno+1
                Set @prevdocid=@docid
        End
    End
    

    现在问题是将相同的documentmentid分配给不同的行。我不知道怎么做。

    还有一点需要注意的是,它会发生4行。对于前者如果第385行的docid为ABC123,第386行的docid为DEF345,那么在387 docid再次为ABC123和388 DEF345。

    当我们完成所有检查时,这是怎么回事。这段代码运行正常,但有时我说五分之一,我们就会看到这样的问题。

0 个答案:

没有答案