SQL Server 创建一个登录过程,如果密码或登录名不正确,该过程将打印出来

nx7onnlm  于 2023-01-20  发布在  其他
关注(0)|答案(1)|浏览(119)

我想写一个存储过程,当我键入一个不正确的密码或用户名时,它会打印出它是不正确的。
到目前为止,这就是我所知道的。我想我明白为什么它不工作,但不知道如何验证登录名和密码的@参数。

ALTER PROCEDURE login
(
  @login VARCHAR(25),
  @passwrd VARCHAR(50)
)
AS
BEGIN

    SELECT ID_work
    FROM dbo.work 
    WHERE login = @login
        AND password = @passwrd

    IF @login != (SELECT login FROM dbo.work)
    BEGIN
        PRINT 'incorrect'
    END
    ELSE
    BEGIN
        IF @passwrd != (SELECT password FROM dbo.work)
            PRINT 'incorrect'
    END

END
yk9xbfzb

yk9xbfzb1#

这个怎么样?

CREATE OR ALTER PROCEDURE login
    (@login VARCHAR(25),
     @passwrd VARCHAR(50))
AS
BEGIN
    IF NOT EXISTS (SELECT * 
                   FROM dbo.Work
                   WHERE login = @login AND password = @passwrd)
    BEGIN
        PRINT 'incorrect'
    END
END

只需使用IF NOT EXISTS()检查是否存在具有指定条件的行;如果不是,则执行PRINT 'incorrect' ....

    • 警告**:看起来好像您在以明文形式存储密码***-这是***巨大的***禁忌,无法保护您的系统。不要这样做!!!

相关问题