Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Помощь молодому=)  [new]
ARusov
Member

Откуда:
Сообщений: 181
Добрый день!
Возникла такая проблема:
Мне необходимо, чтобы в БД каждый день в 12.00 происходила проверка какого-либо поля, и при выполнении условия другоt поле изменялось!
СУБД MS SQL Server 2008
Помогите с решением вопроса, если можно, то с подробным пошаговым описанием
Заранее СПАСИБО!!!
6 сен 11, 11:25    [11232925]     Ответить | Цитировать Сообщить модератору
 Re: Помощь молодому=)  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
JOB
6 сен 11, 11:27    [11232935]     Ответить | Цитировать Сообщить модератору
 Re: Помощь молодому=)  [new]
ARusov
Member

Откуда:
Сообщений: 181
ОК, спасибо!
А если не затруднит не могли бы Вы описать как его делать)
6 сен 11, 11:31    [11232971]     Ответить | Цитировать Сообщить модератору
 Re: Помощь молодому=)  [new]
Mgvlad
Member

Откуда: Минск
Сообщений: 97
ARusov
ОК, спасибо!
А если не затруднит не могли бы Вы описать как его делать)


Вообще гугл в помощь. Но раз уж лень, то тынц
6 сен 11, 12:15    [11233380]     Ответить | Цитировать Сообщить модератору
 Re: Помощь молодому=)  [new]
ARusov
Member

Откуда:
Сообщений: 181
А где в Managment Studio этот job создать?
Я очень новичок в этом, просьба описать как делать
Заранее спасибо!
6 сен 11, 12:24    [11233464]     Ответить | Цитировать Сообщить модератору
 Re: Помощь молодому=)  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
ARusov
А где в Managment Studio этот job создать?
Я очень новичок в этом, просьба описать как делать
Заранее спасибо!
В агенте.
6 сен 11, 12:25    [11233477]     Ответить | Цитировать Сообщить модератору
 Re: Помощь молодому=)  [new]
Slava_Nik
Member

Откуда: из России
Сообщений: 901
ARusov,

Агент SQL Server->Задания->Создать задание

у вас какая версия сикуля, на Express версии агента нет и соответсвенно джоб нельзя создать?
6 сен 11, 12:27    [11233491]     Ответить | Цитировать Сообщить модератору
 Re: Помощь молодому=)  [new]
SamMan
Member

Откуда: Moscow
Сообщений: 759
Slava_Nik
у вас какая версия сикуля, на Express версии агента нет и соответсвенно джоб нельзя создать?


Верное замечание, только говорить надо не версия, а редакция - именно о ней речь в данном предложении.
6 сен 11, 12:32    [11233540]     Ответить | Цитировать Сообщить модератору
 Re: Помощь молодому=)  [new]
ARusov
Member

Откуда:
Сообщений: 181
Вот в чем беда, огромное спасибо!!!
6 сен 11, 12:35    [11233561]     Ответить | Цитировать Сообщить модератору
 Re: Помощь молодому=)  [new]
ARusov
Member

Откуда:
Сообщений: 181
А решить такую задачу на Express Реально вообще?
6 сен 11, 12:36    [11233571]     Ответить | Цитировать Сообщить модератору
 Re: Помощь молодому=)  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
ARusov
А решить такую задачу на Express Реально вообще?
Виндовый шедулер никто не отменял.
6 сен 11, 12:37    [11233579]     Ответить | Цитировать Сообщить модератору
 Re: Помощь молодому=)  [new]
Mgvlad
Member

Откуда: Минск
Сообщений: 97
ARusov,

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

-- создаём тестовую табличку
CREATE TABLE [dbo].[TestTable](
	[ID] [int] IDENTITY(1,1) NOT NULL,
	[kakoe_libo] [varchar](100) NULL,
	[drugoe] [varchar](100) NULL,
 CONSTRAINT [PK_TestTable] PRIMARY KEY CLUSTERED 
(	[ID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

-- заполняем
SET IDENTITY_INSERT [dbo].[TestTable] ON
INSERT [dbo].[TestTable] ([ID], [kakoe_libo], [drugoe]) VALUES (1, N'asd', NULL)
INSERT [dbo].[TestTable] ([ID], [kakoe_libo], [drugoe]) VALUES (2, N'asd', NULL)
INSERT [dbo].[TestTable] ([ID], [kakoe_libo], [drugoe]) VALUES (3, N'asd', NULL)
INSERT [dbo].[TestTable] ([ID], [kakoe_libo], [drugoe]) VALUES (4, N'asd', NULL)
INSERT [dbo].[TestTable] ([ID], [kakoe_libo], [drugoe]) VALUES (5, N'ad', NULL)
INSERT [dbo].[TestTable] ([ID], [kakoe_libo], [drugoe]) VALUES (6, N'ads', NULL)
INSERT [dbo].[TestTable] ([ID], [kakoe_libo], [drugoe]) VALUES (7, N'asd', NULL)
INSERT [dbo].[TestTable] ([ID], [kakoe_libo], [drugoe]) VALUES (8, N'asda', NULL)
INSERT [dbo].[TestTable] ([ID], [kakoe_libo], [drugoe]) VALUES (9, N'sda', NULL)
INSERT [dbo].[TestTable] ([ID], [kakoe_libo], [drugoe]) VALUES (10, N'sda', NULL)
INSERT [dbo].[TestTable] ([ID], [kakoe_libo], [drugoe]) VALUES (11, N'sda', NULL)
INSERT [dbo].[TestTable] ([ID], [kakoe_libo], [drugoe]) VALUES (12, N'sd', NULL)
INSERT [dbo].[TestTable] ([ID], [kakoe_libo], [drugoe]) VALUES (13, N'asd', NULL)
SET IDENTITY_INSERT [dbo].[TestTable] OFF


--вешаем триггер
CREATE TRIGGER [dbo].[UPD_MyFields]
   ON  [dbo].[TestTable] 
   AFTER UPDATE
AS 
BEGIN
	SET NOCOUNT ON;
    Update TestTable
    	set drugoe = 'xepak'	
    where Id in (select i.Id from inserted i join deleted d on i.id=d.id where i.kakoe_libo <> d.kakoe_libo)
END

-- обновляем какое-либо поле

update tt
set kakoe_libo = 'ku-ku'
from TestTable tt
where Id = 4

--смотрим результат
SELECT [ID]
      ,[kakoe_libo]
      ,[drugoe]
  FROM [TestTable]


С триггерами надо быть аккуратными т.к. если к таблице запросов много - можно серьёзно затормозить выполнение.
6 сен 11, 12:37    [11233582]     Ответить | Цитировать Сообщить модератору
 Re: Помощь молодому=)  [new]
SamMan
Member

Откуда: Moscow
Сообщений: 759
ARusov
А решить такую задачу на Express Реально вообще?


1. Пишите все необходимые шаги в скрипт (.sql файл).
2. Запускаете его из командной строки утилью sqlcmd, проверяете что все OK.
3. Оборачиваете получившуюся команду в пакетный файл (.bat/.cmd).
4. Ну и шедулите запуск п.3. по расписанию в системном (виндовом) планировщике.
6 сен 11, 12:43    [11233633]     Ответить | Цитировать Сообщить модератору
 Re: Помощь молодому=)  [new]
ARusov
Member

Откуда:
Сообщений: 181
так, а как его запускать например каждый день в 12,00?!
6 сен 11, 12:44    [11233643]     Ответить | Цитировать Сообщить модератору
 Re: Помощь молодому=)  [new]
ARusov
Member

Откуда:
Сообщений: 181
всем огромное спасибо за помощь!!!!!
6 сен 11, 12:46    [11233662]     Ответить | Цитировать Сообщить модератору
 Re: Помощь молодому=)  [new]
SamMan
Member

Откуда: Moscow
Сообщений: 759
Mgvlad
тогда другое поле будет обновляться сразу же при обновлении какого-либо


Хм. ТС надо не "сразу же при обновлении", а почему-то именно в 12.00 - не?
6 сен 11, 12:57    [11233770]     Ответить | Цитировать Сообщить модератору
 Re: Помощь молодому=)  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
мне вот это понравилось =)
ARusov
...
Помогите с решением вопроса, если можно, то с подробным пошаговым описанием
Заранее СПАСИБО!!!
iap
JOB
жжоте ребята извините за оффтоп, не мог удерджаться!
6 сен 11, 13:15    [11233925]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить