我的脚本生成用于测试的更新脚本。
在这句话中,我需要的是
SELECT 'Update script', @PreviousBalance = @PreviousBalance - @CorrectPrice
FROM table
WHERE column = @Value但是自从'A SELECT statement that assigns a value to a variable must not be combined with data-retrieval operations.'‘之后,我需要一些其他的方法来做到这一点。我的任务是迭代一些初始值,并更新事务日志。因此,每次@CorrectPrice必须从@PreviousBalance中减去。
想法?
实际查询:
SELECT 'UPDATE table
SET Amount = ' + CAST(@CorrectPrice as nvarchar(50)) +
', SET CurrentValueUsed = ' + CAST((@PreviousBalance - @CorrectPrice) as nvarchar(50)) + '
WHERE UsageId = ' + CAST(UsageId as nvarchar(50)) as 'UpdateQueriesToRun'
FROM table
WHERE ContractId = @ContractID AND
DateActive IN (SELECT DateActive
FROM table
WHERE ContractId = @ContractID)
ORDER BY DateActive ASC发布于 2016-06-24 22:24:59
如果我理解这个问题,您必须更新并保存更新的前一个值。
如果这是正确的,您可以创建一个带有键字段的日志表、一个日期时间字段(在更新值时设置)、一个用于前一个余额值的feild以及一个具有新余额值的字段。
然后,您可以在要更新的表上创建更新触发器,使用该触发器,您可以在日志表上写入正在更改的值。
希望这个解决方案能帮到你!
https://stackoverflow.com/questions/38021214
复制相似问题