阅读了很多关于游标之恶的文章,但对我来说,如果游标只是只读而且只是前进,那么好像是很好的方法。我是否正确地认为这不会导致锁定。
如果行具有特定值,我需要选择一组记录并迭代它们执行操作。 acrion将是一个存储过程,并将当前行的副本插入到具有一些更新日期的同一个表中。可能会有很多这样的行,所以我正在寻找最有效的方法。
有人能提出解决此类问题的最有效方法吗?
答案 0 :(得分:0)
你可以开始研究
例如
WITH
cteTotalSales (SalesPersonID, NetSales)
AS
(
SELECT SalesPersonID, ROUND(SUM(SubTotal), 2)
FROM Sales.SalesOrderHeader
WHERE SalesPersonID IS NOT NULL
GROUP BY SalesPersonID
)
SELECT
sp.FirstName + ' ' + sp.LastName AS FullName,
sp.City + ', ' + StateProvinceName AS Location,
ts.NetSales
FROM Sales.vSalesPerson AS sp
INNER JOIN cteTotalSales AS ts
ON sp.BusinessEntityID = ts.SalesPersonID
ORDER BY ts.NetSales DESC
希望它有所帮助!