[英]SCOPE_IDENTITY() not working
When I try to get the last ID inserted on Database via SQL Server it returns __Page. 当我尝试通过SQL Server在数据库中插入最后一个ID时,它返回__Page。 Here is my code :
这是我的代码:
query = "INSERT INTO
seekers(name, sname, lname, status, gender, dob, major, experince,
email, password, phone, valid, city)
values (@name, @sname, @lname, @status ,@gender, @dob, @major,
@exp, @email, @password, @phone, 0, @city);
SELECT SCOPE_IDENTITY();";
// some code here related to parameters
command = new SqlCommand(query, connection);
int id = Convert.ToInt32(command.ExecuteScalar());
If just you want to SELECT
it use OUTPUT
; 如果您只想
SELECT
它,请使用OUTPUT
;
INSERT INTO seekers(name,sname,lname,status,gender,dob,major,experince,email,password,phone,valid,city)
OUTPUT INSERTED.IDENTITY_COL_NAME
values(@name,@sname,@lname,@status,@gender,@dob,@major,@exp,@email,@password,@phone,0,@city);
As using ExecuteScalar
. 使用
ExecuteScalar
。 And ur first executing statement is INSERT
so it returns number of records inserted. 你首先执行语句是
INSERT
所以它返回插入的记录数。
To avoid this use SET NOCOUNT ON
as shown below: 为避免这种情况,请使用
SET NOCOUNT ON
,如下所示:
string Query = @"SET NOCOUNT ON;
INSERT INTO table1(name) values('ttt');
SELECT SCOPE_IDENTITY(); SET NOCOUNT OFF;
";
You can write a stored procedure like that; 你可以写这样的存储过程;
CREATE PROCEDURE [seekers_Insert]
@ID uniqueidentifier OUTPUT,
@name nvarchar(50) ,
@sname nvarchar(50),
(other input parameters)
AS
INSERT INTO seekers(name,sname,lname,status,gender,dob,major,experince,email,
password,phone,valid,city)
values(@name,@sname,@lname,@status,@gender,@dob,@major,@exp,@email,
@password,@phone,0,@city)
SET @ID=SCOPE_IDENTITY()
GO
and later you can take it 以后你可以接受它
int ID = Convert.ToInt32(Command.ExecuteScalar());
we do this and works fine but we use return parameters for example in our stored procedure: 我们这样做并且工作正常,但我们使用返回参数,例如在我们的存储过程中:
@RecordID int OUTPUT
... here the insert statement ...这里是插入语句
SET @RecordID= SCOPE_IDENTITY();
... ...
SELECT @RecordID
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.