Запускайте хранимую процедуру только в том случае, если предыдущее значение меньше нового значения, вставляемого в таблицу SQL Server. - PullRequest
0 голосов
/ 20 сентября 2019

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

Department   Change    Date
------------------------------------
Catering        3      2018-01-01 08:09:00.000   - Current Record 

Department   Change    Date
-----------------------------------------------
Catering       3       2018-01-02 09:10:00.000   - New record to be inserted 

У меня пока есть это, но, очевидно, выбор неправильный.Я хочу сделать что-то подобное до Insert заявления

 if select top 1 * 
    from  database.[dbo].[DepartmentChange]
    where Department = @Department
      and Date > @Date
    order by Date desc  
begin 

, пожалуйста, помогите

Ответы [ 2 ]

2 голосов
/ 20 сентября 2019

Довольно смутные подробности здесь, но я думаю, что вы ищете что-то вроде этого.

if not EXISTS
(
    select * 
    from database.[dbo].[DepartmentChange]
    where Department = @Department
        and Date > @Date
)
    begin
        --do your insert
    end

else
    begin
        --do something else here
    end
0 голосов
/ 20 сентября 2019

Неясный вопрос.Я предполагаю, @Date, @Department из новой записи.Так что, может быть, так.,.

if @Date > (select isnull(max(date),'1500-01-01') from database.[dbo].[DepartmentChange]
             where Department = @Department)
   begin
      insert statement here
   end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...