存储过程

时间:2011-04-26 22:07:25

标签: sql stored-procedures

我有一个将用户插入表中的存储过程,但是我希望输出值等于表中新插入的UserID,但我不知道怎么做才能帮助我吗?

我有这个

ALTER PROCEDURE dbo.st_Insert_User
(
@Nombre varchar(200),
@Usuario varchar(100),
@Password varchar(100),
@Administrador bit,
@Resultado int output
)
AS
INSERT INTO tbl_Users(Nombre, Usuario, Password, Administrador)
VALUES(@Nombre, @Usuario, @Password, @Administrador)

    SELECT @resultado = UserID

我也试过

SELECT @resultado = UserID FROM tbl_Users WHERE Usuario = @Usuario

3 个答案:

答案 0 :(得分:3)

SELECT SCOPE_IDENTITY()

将为您提供行

的标识

答案 1 :(得分:3)

对于SQL Server,您希望使用OUTPUT子句。请参阅Books Online中的信息和示例。它确实涵盖了你的情况 - 因为它提到“在INSERT或UPDATE操作之后,OUTPUT子句可能对检索身份或计算列的值很有用。”

(如果这是出于现实目的,您当然会在存储应该解决的密码时遇到安全问题。)

答案 2 :(得分:0)

最后添加

选择@@ Identity