dbo.aspnet_Profile_SetProperties
    @ApplicationName        nvarchar(256),
    
@PropertyNames          ntext,
    
@PropertyValuesString   ntext,
    
@PropertyValuesBinary   image,
    
@UserName               nvarchar(256),
    
@IsUserAnonymous        bit,
    
@CurrentTimeUtc         datetime
AS
BEGIN
    
DECLARE @ApplicationId uniqueidentifier
    
SELECT  @ApplicationId = NULL

    
DECLARE @ErrorCode     int
    
SET @ErrorCode = 0

    
DECLARE @TranStarted   bit
    
SET @TranStarted = 0

    
IF@@TRANCOUNT = 0 )
    
BEGIN
       
BEGIN TRANSACTION
       
SET @TranStarted = 1
    
END
    
ELSE
        
SET @TranStarted = 0

    
/*调用另一个存储过程dbo.aspnet_Applications_CreateApplication*/
    
EXEC dbo.aspnet_Applications_CreateApplication @ApplicationName@ApplicationId OUTPUT

    
IF@@ERROR <> 0 )
    
BEGIN
        
SET @ErrorCode = -1
        
GOTO Cleanup
    
END

    
DECLARE @UserId uniqueidentifier
    
DECLARE @LastActivityDate datetime
    
SELECT  @UserId = NULL
    
SELECT  @LastActivityDate = @CurrentTimeUtc

    
SELECT @UserId = UserId
    
FROM   dbo.aspnet_Users
    
WHERE  ApplicationId = @ApplicationId AND LoweredUserName = LOWER(@UserName)
    
IF (@UserId IS NULL)
        
EXEC dbo.aspnet_Users_CreateUser @ApplicationId@UserName@IsUserAnonymous@LastActivityDate@UserId OUTPUT

    
IF@@ERROR <> 0 )
    
BEGIN
        
SET @ErrorCode = -1
        
GOTO Cleanup
    
END

    
UPDATE dbo.aspnet_Users
    
SET    LastActivityDate=@CurrentTimeUtc
    
WHERE  UserId = @UserId

    
IF@@ERROR <> 0 )
    
BEGIN
        
SET @ErrorCode = -1
        
GOTO Cleanup
    
END

    
IF (EXISTSSELECT *
               
FROM   dbo.aspnet_Profile
               
WHERE  UserId = @UserId))
        
UPDATE dbo.aspnet_Profile
        
SET    PropertyNames=@PropertyNames, PropertyValuesString = @PropertyValuesString,
               PropertyValuesBinary 
= @PropertyValuesBinary, LastUpdatedDate=@CurrentTimeUtc
        
WHERE  UserId = @UserId
    
ELSE
        
INSERT INTO dbo.aspnet_Profile(UserId, PropertyNames, PropertyValuesString, PropertyValuesBinary, LastUpdatedDate)
             
VALUES (@UserId@PropertyNames@PropertyValuesString@PropertyValuesBinary@CurrentTimeUtc)

    
IF@@ERROR <> 0 )
    
BEGIN
        
SET @ErrorCode = -1
        
GOTO Cleanup
    
END

    
IF@TranStarted = 1 )
    
BEGIN
        
SET @TranStarted = 0
        
COMMIT TRANSACTION
    
END

    
RETURN 0

Cleanup:

    
IF@TranStarted = 1 )
    
BEGIN
        
SET @TranStarted = 0
        
ROLLBACK TRANSACTION
    
END

    
RETURN @ErrorCode

END

相关文章:

  • 2021-11-30
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-02-07
猜你喜欢
  • 2021-10-01
  • 2022-02-12
  • 2022-12-23
  • 2021-11-19
  • 2022-12-23
  • 2022-03-01
  • 2021-11-28
相关资源
相似解决方案