我有以下问题...
我有一个表 AccountingEntry
,它当前有一个主键,即会计 ID
。我还有一列告诉我它是哪种类型的条目...
我需要做的是以下...
如果该行是某种类型(比方说 CreditCardPayment
,我需要增加另一列的值,比方说 CCId
加一个...如何我做到了??
(请注意,不能进行分表)
这需要在 INSERT 语句中完成....
假设在我的数据库中我有..
编号 |类型 |另一个 ID
1 |借方 | -
2 |信用 | 1
3 |借方 | -
4 |信用 | x -> 这需要是最后一个信用 'AnotherID' + 1
最佳答案
简单的 UPDATE
和 WHERE
条件应该在这里完成工作:
UPDATE TableName SET CCId = CCId + 1 WHERE Type = 'CreditCardPayment'
更新
您可以在 INSERT
语句之后使用触发器自动执行此操作:
CREATE TRIGGER autoIncrement
ON TableName
AFTER INSERT
AS
UPDATE
TableName
SET
CCId = -- put your 'get last of that type + 1 here
WHERE
Type = 'CreditCardPayment' AND Id = inserted.Id
GO
-- 把你的 'get last of that type + 1 here
可以是这样的:
SELECT TOP(1) AnotherID FROM TableName WHERE Type = 'CreditCardPayment' ORDER BY AnotherID DESC
关于sql - 根据条件增加一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15500340/