ЕСЛИ НЕ СУЩЕСТВУЕТ, вставьте ЕЩЕ, ЕСЛИ обновите, ЕСЛИ ЕСТЬ, ЕСЛИ СУЩЕСТВУЕТ и не является числовым. УДАЛИТЬ ОТ ГДЕ - PullRequest
0 голосов
/ 19 апреля 2019

Я хочу изменить хранимую процедуру ниже.

@UserID INT
@Unlock VARCHAR(4)

AS
SET NOCOUNT ON

IF NOT EXISTS (SELECT * FROM dbo.tblUnlockCode WHERE iUserID = @UserID)
BEGIN
IF ISNUMERIC(@Unlock) = 1
BEGIN 
INSERT dbo.tblUnlockCode (iUserID, sUnlockCode) VALUES (@UserID, @Unlock)
END 

Я на самом деле хотел бы добавить к ней, где, если iUserID существует, обновить @Unlock до нового Pin, и если iUserID существуетна столе, но @Unlock удаляется в текстовом поле (в доступе), он удаляется из таблицы.Я только хочу сохранить iUserID, что 4-значные выводы.Как я могу это сделать?

PS при доступе. Я проверяю, если пин-код 4 цифры.

1 Ответ

0 голосов
/ 19 апреля 2019

Попробуйте это (я также рекомендую добавить обработку ошибок, если у вас ее нет):


    @UserID INT
    @Unlock VARCHAR(4)

    AS
    SET NOCOUNT ON

    IF NOT EXISTS (SELECT * FROM dbo.tblUnlockCode WHERE iUserID = @UserID)
    BEGIN
      IF ISNUMERIC(@Unlock) = 1
      BEGIN 
        INSERT dbo.tblUnlockCode (iUserID, sUnlockCode) VALUES (@UserID, @Unlock)
      END   
    END
    ELSE
    BEGIN
      IF ISNUMERIC(@Unlock) = 1
      BEGIN 
        UPDATE dbo.tblUnlockCode set sUnlockCode=@Unlock WHERE iUserID= @UserID
      END   
      ELSE --Assuming you want to clear the record if unlock code is empty
      BEGIN
        DELETE dbo.tblUnlockCode WHERE iUserID= @UserID      
      END
    END
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...