存储过程中的SQL输出语句

时间:2017-08-27 10:46:43

标签: sql-server tsql stored-procedures output

请帮助我编辑以下SQL Server存储过程以使用http://social.yahooapis.com/progrss/v1/users.guid(E7HLX6HSEMQRFGE3HL3ANLH4HM)/profile?format=json&.imgssl=1 语句获取最后插入行的ID,以便检索它抛出C#代码,如

OUTPUT

存储过程代码:

int ID = Convert.ToInt32(insertUser.ExecuteScalar());

2 个答案:

答案 0 :(得分:1)

你应该添加一个' Transact-SQL'标记到这篇文章。

答案是

select SCOPE_IDENTITY()

虽然为了完整性,我还应该提到你可以在insert语句中使用output子句,但只有在插入多行时才会有用。

答案 1 :(得分:0)

最后我做到了。如果有人想通过存储过程使用OUTPUT子句想要最后插入列的id,只需使用下面的代码。 SCOPE_IDENTITY()可能会导致多个用户并行插入时出错

AS
BEGIN
    SET NOCOUNT ON;
     DECLARE @IDs TABLE(ID INT);

    INSERT INTO dbo.Registration_Table(StudentName,Email,CourseCode,CourseTitle)
  OUTPUT inserted.ID INTO @IDs(ID) 
    VALUES (@StudentName, @Email, @CourseCode, @CourseTitle)  

   SELECT ID FROM @IDs;
END
GO