我在SQL Server 2008中有一个SQL表,为此目的包括Patient_id(主要),Custno(Char),Recip_Id(Int)
1 - C01731 - 1
2 - C01731 - 2
3 - C01731 - 3
4 - C01732 - 1
5 - C01732 - 2
6 - C01732 - 3
7 - C01732 - 4
8 - C01733 - 1
9 - C01733 - 2
因此,当我只需要插入一条记录时,我就会使用这个存储过程......
Create PROCEDURE [dbo].[JR_SP_NW_InsertRecord]
(
@custno varchar(MAX),
@modwho varchar(MAX)
)
AS
BEGIN
SET NOCOUNT ON;
--Declare @retval int
Declare @rownum int
SET @rownum = (select MAX(recip_id)+1 From UsersMailingData where custno = @custno)
INSERT INTO dbo.UsersMailingData(custno,Recip_id,modify, modifywho)
Values(@custno, @rownum, GETDATE(), @modwho)
select Cast(SCOPE_IDENTITY() as int)
END
我的问题是我需要一个存储过程,它将根据@custno查看Recip_Id列中的最高编号,然后在插入多行时将每个插入的行增加1。从没有问题的记录被删除时,recip_id也可能存在间隙。
答案 0 :(得分:0)
我假设您的问题是您使用select语句插入行,在这种情况下,您可以使用row_number()为行指定编号,如下所示:
div(ui-view="ticketList")
div(ui-view="ticketComments")
div(ui-view="ticketDetail")
colname是一个列,您希望为新行计算数字。
您的@rownum fetch也有一个错误,当客户没有行时它不起作用。