Хранимые процедуры - PullRequest
2 голосов
/ 27 апреля 2011

У меня есть хранимая процедура, которая вставляет пользователя в таблицу, но я хочу, чтобы выходное значение равнялось новому добавленному 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 ]

3 голосов
/ 27 апреля 2011

Для SQL Server вы хотите использовать предложение OUTPUT.См. Информацию и примеры в Books Online здесь.Он охватывает ваш случай - поскольку в нем упоминается «Предложение OUTPUT может быть полезно для получения значения идентификатора или вычисляемых столбцов после операции INSERT или UPDATE."

(Если это для реальных целей, выКонечно, у вас есть проблемы с безопасностью при хранении паролей, к которым вам следует обратиться.)

3 голосов
/ 27 апреля 2011
SELECT SCOPE_IDENTITY()

даст вам идентификатор строки

0 голосов
/ 27 апреля 2011

Добавьте в конце

выберите @@ Identity

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...