在SQL Server 2005数据库中,我有一个存储过程。我把它们放在临时表中的日期。我想在这个临时表中循环,并根据某些字段的值更改其他字段的值并进行一些检查。我必须为每一行做这个。
我该怎么做?
感谢,
UPDATE1
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
答案 0 :(得分:2)
我阅读了WHILE loop和CURSOR的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,但一切皆有可能。
告诉我们您的检查是什么,以及如果您需要更多帮助,您的临时表会是什么样的。
答案 1 :(得分:0)
你不能只使用游标并在游标内运行一个更新语句吗?