0

我有一个不会改变的表,除非我改变它,我想用它作为变量值的参考。我想取每一行,在一列中,并将行设置为变量,执行一些命令,然后将下一行设置为相同的变量,然后重复。

前任。

带有rowNumberRowValue列的表

declare @rowNumber int, @RowValue nvarchar(255)
set @rowNumber = 1

set @RowValue = (Row # in RowValue column)

execute instructions with @RowValue value.

set @rowNumber = @rowNumber + 1

loop

我知道我可以使用下面的说明来组织行列,但我不确定如何通过将单个单元格值分配给变量来完成我的任务。

SELECT ROW_NUMBER() OVER( ORDER BY Names ) AS 'rownumber',*
FROM [Database Names]

这是我正在寻找的答案的示例,它涉及使用游标从表列中迭代地选择值。

declare @DBName varchar(255)

declare db_cursor Cursor FOR 
select DBTable
from Database_Names.dbo.Database_Names
--where name not in ('DB') --Not Used but could be used to filter results

open db_cursor
Fetch Next from db_cursor into @DBName

WHILE @@FETCH_STATUS = 0   
BEGIN   
       print  'The Database Selected is ' + @DBName

       FETCH NEXT FROM db_cursor INTO @DBName   
END   

CLOSE db_cursor   
DEALLOCATE db_cursor
4

1 回答 1

1

为什么不在表上创建一个标识并使用 ID 将每一行的值更新为您要更改的每个变量。IE 更新表设置 variable_Value = '@x' 其中 Variable_id = @VariableID。然后在您的循环中设置 @VariableID = @VariableID +1 ?我可能不完全理解这个问题,但这似乎是你想要做的。

于 2012-08-06T19:46:15.280 回答