sql - 根据条件增加一个值

标签 sql sql-server database

我有以下问题...

我有一个表 AccountingEntry,它当前有一个主键,即会计 ID。我还有一列告诉我它是哪种类型的条目...

我需要做的是以下...

如果该行是某种类型(比方说 CreditCardPayment,我需要增加另一列的值,比方说 CCId 加一个...如何我做到了??

(请注意,不能进行分表)

这需要在 INSERT 语句中完成....

假设在我的数据库中我有..

编号 |类型 |另一个 ID
1 |借方 | -
2 |信用 | 1
3 |借方 | -
4 |信用 | x -> 这需要是最后一个信用 'AnotherID' + 1

最佳答案

简单的 UPDATEWHERE 条件应该在这里完成工作:

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/

相关文章:

java - 如何在Java中创建一个具有可变列的数据库表?

mysql - 同步两个mysql数据库表

mysql - sql查询通过电子邮件获取用户列表

c++ - 使用 C++ 或 Qt 将 SQL LIKE 表达式转换为正则表达式

php - SQL 用新数据更新整个表

sql - 在 SQL Server 中将年份 (aaaa) 和季度(1 到 4)转换为日期时间

sql - Sql Azure 数据库中区分大小写的列名称

mysql - 如何存储不可变、唯一、有序的列表?

python - 将已部署的 flask 应用程序连接到托管在另一台服务器/提供商上的数据库

SQL 选择最后一次出现的唯一属性