0

在我的项目中,我必须在第一次从数据库中保存数据(技术上的 INSERT 命令)时获取一个 StudentId。目前我存储的插入过程如下:

    ALTER PROCEDURE [dbo].[usp_iSaveStudent]
    -- Add the parameters for the stored procedure here
    @StudentId varchar(50),
    @FirstName varchar(50),
    @MiddleName varchar(50),
    @LastName varchar(50),
    @CGPA decimal(18),
    @Email varchar(50)  
AS
BEGIN
    insert into dbo.Student values(@StudentId,@FirstName,@MiddleName,@LastName,@CGPA,@Email)
END

我在第一次保存时为 studentId 传递 NULL 字符串。谁能建议我如何为我插入的每条记录生成一个自动递增的 StudentId 并同时将其返回到我的程序中?

提前致谢。

4

1 回答 1

1

SQL SERVER中,在创建表时使用IDENTITY(1,1)将自动递增到下一个值的函数。

插入查询后,使用@@IDENTITY变量获取在当前会话中输入到表中的最后一个标识值

就像是

// Create your table
CREATE TABLE Persons
(
ID int IDENTITY(1,1) PRIMARY KEY,
LastName varchar(255) NOT NULL,
)

//Create your procedure
create procedure myproc as
begin
insert into persons(lastname) values('jasdg');
print @@identity; // use this variable to get the last value generated
end

虽然,您也可以使用SCOPE_IDENTITY代替@@IDENTITY,所以最好访问此博客以使用合适的。

于 2013-08-18T06:54:44.460 回答