【问题标题】:How to write TSQL insert stored procedure with max value of previous serial numbers?如何编写具有先前序列号最大值的TSQL插入存储过程?
【发布时间】:2011-06-06 07:15:06
【问题描述】:

我有Letters 表:

+--------------+-------+
| SerialNumber | Letter|
+--------------+-------+
| 1            | A     |
| 2            | B     |
| 3            | C     |
| 4            | D     |
+--------------+-------+

如何编写 TSQL 插入存储过程 PA_Letters_INS,它自动添加以前序列号值的最大值并具有 letter 插入参数(SerialNumber 列上没有 MSSQL 自动增量功能)。

(exec PA_Letters_INS 'E' 添加 {5, E} 记录)

【问题讨论】:

    标签: sql-server tsql stored-procedures


    【解决方案1】:

    @Letter是你的存储过程参数,

    INSERT INTO Letters(SerialNumber, Letter)
         SELECT MAX(SerialNumber) + 1, @Letter 
         FROM Letters
    

    【讨论】:

    • 如果表不为空,这将起作用。对于一般情况,使用 COALESCE(MAX(SerialNumber),0)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-14
    • 1970-01-01
    • 2020-03-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多