使用存储过程进行更新

问题描述:

你好..

i我试图通过商店程序更新表..

i有一个log_in表..

现在我想要检索最长登录时间。



给出以前的SP。



hello..
i am trying to update table through store procedure..
i have a log_in table..
now i want to retrieve max login time.

giving previous SP.

Create PROCEDURE [dbo].[USP_GetUserDetails] 
(	
	@UserName NVARCHAR(10),
	@UserPassword NVARCHAR(100),
	@LoginStatus BIT,
	@IsActive NCHAR(1)
)
	
AS
BEGIN
	SELECT USERID,UserName,UserPassword,LoginStatus,IsActive,DeptID
		FROM dbo.UserLogin 
		WHERE UserName=@UserName AND UserPassword=@UserPassword AND LoginStatus =1 AND IsActive='Y'
ENDEND





现在我想在此过程中添加以下代码..

登录成功后,下面的代码执行ll在上一个。程序。







Now I want to add below codes with in this procedure..
after login success the below code ll execute with in the prev. procedure.


CREATE PROCEDURE [dbo].[retrive]

AS
BEGIN
declare @value integer

    SET @value = (SELECT m.VisitCount FROM UserLogin m WHERE m.UserID = '1')
    update UserLogin set VisitCount=@value+1 where UserID='1'
END






帮帮我..

问候




Help Me..
Regards

试试这个...



Hi, try this...

Create PROCEDURE [dbo].[USP_GetUserDetails] 
(	
	@UserName NVARCHAR(10),
	@UserPassword NVARCHAR(100),
	@LoginStatus BIT,
	@IsActive NCHAR(1)
)
	
AS
BEGIN
	DECLARE @USERID INT

	SELECT USERID,UserName,UserPassword,LoginStatus,IsActive,DeptID
		FROM dbo.UserLogin 
		WHERE UserName=@UserName AND UserPassword=@UserPassword AND LoginStatus =@LoginStatus  AND IsActive=@IsActive 

	-- Get User ID 
	SELECT @USERID=USERID  
	FROM dbo.UserLogin 
	WHERE UserName=@UserName AND UserPassword=@UserPassword AND LoginStatus =@LoginStatus  AND IsActive=@IsActive 
 
	-- update the visitCount
        -- @value is same as current values from UserLogin, so no need to new variable and get the values from table  
	UPDATE UserLogin set VisitCount=ISNULL(VisitCount,0)+1 where UserID=@USERID 
 
END





GVPRabu



GVPRabu


这个怎么样?



CREATE PROCEDURE [dbo]。[USP_GetUserDetails]



@UserName NVARCHAR(10),

@UserPassword NVARCHAR(100),

@LoginStatus BIT,

@IsActive NCHAR(1)





AS

BEGIN

if((从dbo.UserLogin选择COUNT(*)WHERE UserName = @ UserName AND UserPassword = @ UserPassword AND LoginStatus = 1 AND IsActive ='Y')> 0)

SELECT USERID,UserName ,UserPassword,LoginStatus,IsActive,DeptID

来自dbo.UserLogin

WHERE UserName = @ UserName AND UserPassword = @ UserPassword AND LoginStatus = 1 AND IsActive ='Y'



声明@value整数



SET @value =(SELECT m.VisitCount FROM UserLogin m WHERE m.UserID ='1')

更新UserLogin设置VisitCount = @ value + 1其中UserID ='1'

END
What About This One ?

CREATE PROCEDURE [dbo].[USP_GetUserDetails]
(
@UserName NVARCHAR(10),
@UserPassword NVARCHAR(100),
@LoginStatus BIT,
@IsActive NCHAR(1)
)

AS
BEGIN
if((Select COUNT(*) from dbo.UserLogin WHERE UserName=@UserName AND UserPassword=@UserPassword AND LoginStatus =1 AND IsActive='Y')>0)
SELECT USERID,UserName,UserPassword,LoginStatus,IsActive,DeptID
FROM dbo.UserLogin
WHERE UserName=@UserName AND UserPassword=@UserPassword AND LoginStatus =1 AND IsActive='Y'

declare @value integer

SET @value = (SELECT m.VisitCount FROM UserLogin m WHERE m.UserID = '1')
update UserLogin set VisitCount=@value+1 where UserID='1'
END