Tsql T-SQL中的循环,如何获取字段值
在SQLServer2005数据库中,我有一个存储过程。我有约会,把他们放在临时桌上。我想在这个临时表中循环,根据一些字段的值更改其他字段的值并进行一些检查。每行我都要这样做 我该怎么做 谢谢 更新1Tsql 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,
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更新他的需求。