我的脚本生成更新脚本以进行测试。
在本声明中,我需要的是
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
答案 0 :(得分:0)
如果我了解问题,您必须更新并保存更新的先前值。
如果这是正确的,您可以创建一个日志表,其中包含关键字段字段,日期时间字段(更新值时设置),前一个余额值的字段和具有新余额值的字段。
然后,您可以在要更新的表上创建更新触发器,并且可以在日志表中写入要更改的值。
希望这个解决方案可以帮到你!