我正在学习数据库作为学生,我对SQL很新,我一直在努力避免在我的数据库中以纯文本格式保存密码,所以我浏览了互联网并最终使用
CREATE PROCEDURE uspAddUser
@pAcctID char(8),
@pLogin NVARCHAR(50),
@pPassword NVARCHAR(50),
@pLName NVARCHAR(40) = NULL,
@pFName NVARCHAR(40) = NULL,
@responseMessage NVARCHAR(250) OUTPUT
AS
BEGIN
SET NOCOUNT ON
BEGIN TRY
INSERT INTO AccountInfo(AcctID, LoginName, PasswordHash, LName, FName)
VALUES(@pAcctID,@pLogin, HASHBYTES('SHA2_512', @pPassword), @pLName, @pFName)
SET @responseMessage='Success'
END TRY
BEGIN CATCH
SET @responseMessage=ERROR_MESSAGE()
END CATCH
END
DECLARE @responseMessage NVARCHAR(250)
EXEC uspAddUser
@pAcctID = '00000001',
@pLogin = 'Admin',
@pPassword = '123',
@pLName = 'Doe',
@pFName = 'John',
@responseMessage=@responseMessage OUTPUT
SELECT *
FROM AccountInfo
但它似乎不起作用。它总是影响0行。执行存储过程时,表保持空白。请告诉我我做错了什么。