Зарегистрировать пользователя (вставить в базу данных) - PullRequest
0 голосов
/ 20 ноября 2011
TBL COL NAME                DATATYPE        ALLOW NULL

Subscriber_ID               int         Unchecked
Subscriber_Initial          varchar(5)  Unchecked
Subscriber_Name             varchar(50) Unchecked
Subscriber_Email            varchar(50) Unchecked
Subscriber_Group            varchar(20) Unchecked
Subscriber_Date             datetime    Unchecked
Subscriver_Active           bit         Unchecked
Subscriver_ActivateDate     datetime    Unchecked
Subscriver_DeactivateDate   datetime    Checked

Теперь, когда пользователь зарегистрировался, мне нужно проверить, существует ли он уже в таблице.

Если нет, создайте новую запись.

Если это так, проверьте, активен ли пользователь.

Если нет, активируйте его. обновить дату активации.

Если так, вернись, он уже зарегистрирован.

INSERT INTO 
[ZCustom_SubscriberList] 
(Subscriber_Initial,Subscriber_Name,Subscriber_Email,Subscriber_Group,Subscriber_Date) 
select @initial,@name,@email,'A1',@subdate 
WHERE NOT EXISTS (SELECT * FROM [ZCustom_SubscriberList] WHERE Subscriber_Email=@email)

Это мой код, и он работает без активной колонки. Мне интересно, как добавить в активировать часть.

1 Ответ

1 голос
/ 20 ноября 2011

Примерно так должно работать: (Отказ от ответственности: это непроверенный код, но вы должны получить общее представление)

create procedure AddUser
    @NewUserName varchar(50)
as

    set nocount on;

    declare @SubscriberActive bit

    if exists
    (
        select *
        from YourUserTable
        where subscriber_name = @NewUserName
    )
    begin
        select @SubscriberActive = subscriber_active
        from YourUserTable
        where subscriber_name = @NewUserName

        if @SubscriberActive = 0
        begin
            update YourUserTable
            set subscriber_active = 1,
                subscriber_activedate = getdate()
            where subscriber_name = @NewUserName
        end
    end
    else
    begin
        insert into YourUserTable(subscriber_name) -- fill in the rest of your not null fields
        values(@NewUserName)
    end
go
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...