Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / автоматизация / 6 сообщений из 6, страница 1 из 1
19.04.2019, 11:10
    #39803820
dermama
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
автоматизация
Товарищи добрый день

я новичек, дали попробовать осуществить задание. То есть отрабатывает процедура(а), и после нее я обычно в ручном режиме запускаю другую за определенную дату(б), а сейчас нужно создать новую процедуру (new) сделать так, чтобы после того как отработала процедура (а)
автоматически начала работаь процедура (б) по определенным условиям.

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

/* CREATE PROCEDURE spNew
AS
BEGIN
Если понедельник, то запустить процедуру 'б' Где дата Понедельник - 2
Если вторник, то запустить процедуру 'б', где дата Вторник - 2, и где дата Вторник - 1
Если среда, четверг, пятница, суббота, то запустить процедуру 'б', где дата среда - 1, четверг - 1, пятница - 1, суббота - 1
в воскресение запускать процедуру 'б' нельзя.
END */
...
Рейтинг: 0 / 0
19.04.2019, 11:38
    #39803852
Sergey Sizov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
автоматизация
dermama---необходимо написать процедуру, которая автоматически запускала бы процесс после предыдущего

Если понедельник, то запустить процедуру 'б' Где дата Понедельник - 2
Если вторник, то запустить процедуру 'б', где дата Вторник - 2, и где дата Вторник - 1
Если среда, четверг, пятница, суббота, то запустить процедуру 'б', где дата среда - 1, четверг - 1, пятница - 1, суббота - 1

в воскресение запускать процедуру 'б' нельзя.
А если рабочие дни в результате переносов праздников попали на субботу и/или воскресенье? Не является ли описанная логика всего лишь вашим понимаем первого из процитированных предложений?
Может просто хранить дату предыдущего запуска и запускать процедуру при неравенстве хранимой даты и текущей с последующим сохранением текущей как даты предыдущей обработки? Никаких вычислений с датами и прочей ...стики.
...
Рейтинг: 0 / 0
19.04.2019, 11:39
    #39803853
Руслан Дамирович
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
автоматизация
dermama,
как-то так, экспериментируйте
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
DECLARE @date DATE = GETDATE()
DECLARE @weekday INT = ( DATEPART( WEEKDAY, @date ) + @@DATEFIRST + 5 ) % 7 + 1
DECLARE @execdate DATE

IF @weekday = 1
BEGIN
  SET @execdate = DATEADD( DAY, -2, @date )
  EXECUTE dbo.procedure_A @date = @execdate
END
...
Рейтинг: 0 / 0
19.04.2019, 12:06
    #39803875
dermama
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
автоматизация
Руслан Дамировичdermama,
как-то так, экспериментируйте
Код: sql
1.
 @@DATEFIRST + 5 ) % 7 + 1



Добрый день, поясните, пожалуйста, вот эту часть
...
Рейтинг: 0 / 0
19.04.2019, 12:54
    #39803915
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
автоматизация
dermamaРуслан Дамировичdermama,
как-то так, экспериментируйте
Код: sql
1.
 @@DATEFIRST + 5 ) % 7 + 1




Добрый день, поясните, пожалуйста, вот эту часть FAQ

Немного устарело, конечно. Есть и другие формулы. Тогда пришли в голову эти...
Дело в том, что функция, возвращающая день недели, зависит от того, какой день недели объявлен первым.
В России обычно считают, что это понедельник, в США - воскресенье и т.д.
Сервер хранит эту настройку в глобальной переменной @@DATEFIRST. Я очень давно для себя открыл,
что сумма этой переменной и числа, возвращаемого функцией DATEPART(WEEKDAY, ...), постоянна для каждого дня недели. Следовательно, используя эту сумму, можно забыть о специфических настройках сервера.
А дальше просто - можно подобрать эмпирически константы, чтобы общий результат получался правильным (см. FAQ)
...
Рейтинг: 0 / 0
19.04.2019, 12:58
    #39803920
dermama
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
автоматизация
iapdermamaпропущено...


Добрый день, поясните, пожалуйста, вот эту часть FAQ

используя эту сумму, можно забыть о специфических настройках сервера.


Круто, спасибо, у меня на одном столе вторник как первый день, а на другом воскресение)
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / автоматизация / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]