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

Откуда:
Сообщений: 5
Здравствуйте! Помогите, пожалуйста, справиться с задачей:
Необходимо после изменения названия аптеки, в таблице 'pharmacy' - добавить в таблицу Changes1 данные об изменении.

Запрос работает, но не совсем корректно. Изменение названия аптеки и добавление в новую таблицу происходит. НО! При изменении названия запрос обрабатывает все поля таблицы и соответственно меняет все данные на SOS1, как показано в коде ниже. Проблема в том, что невозможна работа с этой таблицей дальше, потому что повтором входе и изменении таблицу в ручную( на старые названия аптек ) на выходе все меняет обратно на SOS1. Не знаю как быть

USE pharmacy
GO

alter trigger afterUpdate
on pharmacy
after update
as
insert into Changes1(change_time, changed_table, change_type) values
(GETDATE(), 'pharmacy', 'update')


--выполнение процедуры:

-- use [pharmacy]
--go
--update [dbo].[pharmacy]
-- set [id_pharmacy] = 1, [name_pharmacy] = 'SOS1'
-- where id_pharmacy = 1


К сообщению приложен файл. Размер - 4Kb


Сообщение было отредактировано: 20 авг 18, 14:22
20 авг 18, 14:14    [21648180]     Ответить | Цитировать Сообщить модератору
 Re: Запросы. AfterUpdate.  [new]
Посетитель
Member

Откуда:
Сообщений: 1384
Александр Пеклов,

Вы для начала распишите последовательно, что у вас в триггере, какие команды вы запускаете отдельно, что значит
"повтором входе и изменении таблицу в ручную".
какие у вас данные изначально(может, у вас все аптеки с ID =1)
20 авг 18, 14:24    [21648202]     Ответить | Цитировать Сообщить модератору
 Re: Запросы. AfterUpdate.  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36695
Александр Пеклов
Не знаю как быть
Привести внятное репро с созданием таблицы, триггера, занесением данных и апдейтом.

Сообщение было отредактировано: 20 авг 18, 14:25
20 авг 18, 14:25    [21648204]     Ответить | Цитировать Сообщить модератору
 Re: Запросы. AfterUpdate.  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Александр Пеклов
-- use [pharmacy]
--go
--update [dbo].[pharmacy]
-- set [id_pharmacy] = 1, [name_pharmacy] = 'SOS1'
-- where id_pharmacy = 1[/color]


с какого перепугу Вы апдейтаете значение ключа то ?
20 авг 18, 14:25    [21648205]     Ответить | Цитировать Сообщить модератору
 Re: Запросы. AfterUpdate.  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Maxx
Александр Пеклов
-- use [pharmacy]
--go
--update [dbo].[pharmacy]
-- set [id_pharmacy] = 1, [name_pharmacy] = 'SOS1'
-- where id_pharmacy = 1[/color]


с какого перепугу Вы апдейтаете значение ключа то ?


или у ТС такая каша,или где-то григгер

create table dbo.test(
i int
,s varchar(20)
)
go
insert into dbo.test (i,s) 
values (1, 'AAAA'), (2, 'BBBB')

GO
select * from dbo.test
GO
update dbo.test set i =1, s ='XXXX' where i =1
GO
select * from dbo.test
GO 
update dbo.test set i =1, s ='YYYY'
-- where i =1
GO
select * from dbo.test
GO
drop table dbo.test
go
20 авг 18, 14:37    [21648232]     Ответить | Цитировать Сообщить модератору
 Re: Запросы. AfterUpdate.  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7399
Александр Пеклов,

нажимайте стрелку вниз, у Вас обновление на сервер не передается.
20 авг 18, 14:45    [21648242]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить