Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 在SQL Server中创建一个过程,用于确认用户是否插入collect密码和用户名_Sql Server_Stored Procedures - Fatal编程技术网

Sql server 在SQL Server中创建一个过程,用于确认用户是否插入collect密码和用户名

Sql server 在SQL Server中创建一个过程,用于确认用户是否插入collect密码和用户名,sql-server,stored-procedures,Sql Server,Stored Procedures,这就是我想到的: Create table Users ( UserName varchar(35) not null, Password varchar(35) not null, UserId int Foreign key references UserDetails (UserId) ) 以下是确认用户名和密码是否正确的过程: CREATE PROCEDURE sp_Login @Username varchar(35), @Passwor

这就是我想到的:

Create table Users 
(
    UserName varchar(35) not null,
    Password varchar(35) not null,
    UserId int Foreign key references UserDetails (UserId)
)
以下是确认用户名和密码是否正确的过程:

CREATE PROCEDURE sp_Login
     @Username varchar(35),
     @Password varchar(35)
AS
BEGIN
     SELECT @Username = Username 
     FROM Users
     WHERE Username = @Username;

     SELECT @Password = Password
     FROM Users
     WHERE Password = @Password;

考虑更改您的过程名称。sp_uu前缀用于内置过程

CREATE PROCEDURE  sp_Login
@Username varchar(35),
@Password varchar(35)

AS
BEGIN

    IF EXISTS(SELECT 1 
              FROM Users 
              WHERE Username=@Username AND Password=@Password)
        SELECT 'SUCCESS' AS RESULT
    ELSE
        SELECT 'FAILURE' AS RESULT

END
试试这个:-

IF OBJECT_ID(N'[dbo].[sp_Login]', N'P') IS NOT NULL DROP PROCEDURE [dbo].    [sp_Login] 
GO

SET ANSI_NULLS ON GO

SET QUOTED_IDENTIFIER ON GO

CREATE PROCEDURE [dbo].[sp_Login]   
 @Username varchar(35),     
 @Password varchar(35),     
 @Userid int 
AS

IF EXISTS (SELECT 'exists' from Users where UserName = @Username AND Password = @Password AND UserId <> @Userid) 

BEGIN   
 RETURN TRUE; 
END 
ELSE 
BEGIN   
 RETURN FALSE; 
END

旁注::命名过程时避免使用sp_uu前缀。SQL Server使用此前缀来指定系统过程。当两列都属于同一个表时,为什么要使用单独的语句?您的目标是什么?另外:请永远不要以明文形式存储密码!密码应始终经过盐渍+哈希处理才能存储!如果这回答了您的问题,请将其标记为答案。它会帮助别人。