2011-06-06 21 views
0

我有Letters表:如何写入TSQL插入存储过程以前的序列号的最大值?

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

如何写TSQL插入存储过程PA_Letters_INS它会自动将之前的序列号值的最大值和具有letter插入参数(不MSSQL自动增量功能上SerialNumber列)。

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

回答

1

@Letter被你存储过程参数,

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

这将如果表是不是空的工作。对于一般情况下使用COALESCE(MAX(SerialNumber),0) – 2011-06-06 11:02:34

+0

你,你是对的安东尼。 – Akhil 2011-06-06 17:01:16