2015-05-20 6 views
-2

Я хочу сохранить значения в базе данных с помощью хранимой процедуры. У меня есть столбец IS_USER_ACTIVE.Сохранять значение в базе данных с помощью хранимой процедуры

Мое состояние,

  • IS_USER_ACTIVE="active": Я хочу сохранить это значение "Y" в БД.
  • IS_USER_ACTIVE="inactive": Я хочу сохранить это значение «N» в БД.

Как написать это условие в хранимой процедуре?

USE [VIQ] 
 
GO 
 
ALTER PROCEDURE [dbo].[test] 
 
    @a int, 
 
    @b varchar(20), 
 
    @dat varchar(20) 
 
AS 
 
BEGIN 
 
\t SET NOCOUNT ON; 
 

 
    -- Insert statements for procedure here 
 
\t --select * from VIQ_MA_USERS3 where [email protected] -- 
 
\t INSERT INTO VIQ_MA_USERS3(company_id,FIRST_NAME,LAST_NAME,EMAIL_ID,PASSWORD,user_creation_date,USER_STATUS_LAST_UPDATED_DATE,LAST_LOGIN_DATE) 
 
    VALUES(@a, @b, @b, @b, @b, 
 
      CONVERT(Datetime, @dat, 101), 
 
      CONVERT(Datetime, @dat, 101), 
 
      CONVERT(Datetime, @dat, 101)); 
 
END

+0

Я не вижу столбец IS_USER_ACTIVE в вашей таблице, кроме того, что это точка выбора данных из VIQ_MA_USERS3 и вставок снова в VIQ_MA_USERS3 таблице ? Ваше условие для активной проверки пользователя также отсутствует в хранимой процедуре. – elmo

+0

Попробуйте использовать ** более значимые ** имена, чем '@ a' и' @ b' для ваших параметров. Также: если '@ dat' является датой, она должна быть типа' DATE' или 'DATETIME' - а не varchar .... –

ответ

3

Использования саз:

Case IS_USER_ACTIVE when 'active' Then 'Y' 
        when 'Inactive' Then 'N' else <some value> end 
+0

Спасибо большое. –

+0

Всегда Добро пожаловать! –

Смежные вопросы