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

Откуда:
Сообщений: 1090
Как-то не соображу - вроде просто, а лыжи не едут

CREATE TABLE [dbo].[ACRN](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[RN] [nchar](30) NOT NULL,
	[datefrom] [date] NOT NULL,
	[dateto] [date] NULL,
	[AC] [int] NOT NULL,
 CONSTRAINT [PK_ACRN] 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]

GO

ALTER TABLE [dbo].[ACRN] ADD  CONSTRAINT [DF_ACRN_datefrom]  DEFAULT (getdate()) FOR [datefrom]


требуется после вставки записи с определенным AC предыдущей обновить dateto на дату вставки нового в триггере.
наваялось такое, но есть сомнения
ALTER TRIGGER NewRN
   ON  ACRN
   AFTER INSERT
AS 
BEGIN

	SET NOCOUNT ON;
	update ACRN set dateto=getdate() 
	from ARCN a where a.ac=inserted.ac and a.dateto is null
22 окт 15, 13:02    [18311368]     Ответить | Цитировать Сообщить модератору
 Re: After Insert trigger  [new]
Glory
Member

Откуда:
Сообщений: 104751
waszkiewicz
но есть сомнения

в чем ?
22 окт 15, 13:03    [18311379]     Ответить | Цитировать Сообщить модератору
 Re: After Insert trigger  [new]
waszkiewicz
Member

Откуда:
Сообщений: 1090
from ACRN конечно
22 окт 15, 13:05    [18311391]     Ответить | Цитировать Сообщить модератору
 Re: After Insert trigger  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
waszkiewicz
from ACRN конечно
Во FROMе должен быть inserted
Иначе я вообще не понимаю, как сервер пропускает такое!
22 окт 15, 13:09    [18311426]     Ответить | Цитировать Сообщить модератору
 Re: After Insert trigger  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
iap
waszkiewicz
from ACRN конечно
Во FROMе должен быть inserted
Иначе я вообще не понимаю, как сервер пропускает такое!
Раз вы вводите во FROMе алиас для ACRN,
то правильнее было сказать "Во FROMе должен быть и inserted"
22 окт 15, 13:11    [18311442]     Ответить | Цитировать Сообщить модератору
 Re: After Insert trigger  [new]
waszkiewicz
Member

Откуда:
Сообщений: 1090
update a set dateto=getdate() 
	from ACRN a	join inserted i 
	on a.ac=i.ac 
	and a.dateto is null
	where i.id>a.id
22 окт 15, 13:15    [18311472]     Ответить | Цитировать Сообщить модератору
 Re: After Insert trigger  [new]
Glory
Member

Откуда:
Сообщений: 104751
waszkiewicz
where i.id>a.id

Это что такое ?
22 окт 15, 13:19    [18311507]     Ответить | Цитировать Сообщить модератору
 Re: After Insert trigger  [new]
waszkiewicz
Member

Откуда:
Сообщений: 1090
без этого все даты обновляет. Даже у вставленной записи
22 окт 15, 13:50    [18311757]     Ответить | Цитировать Сообщить модератору
 Re: After Insert trigger  [new]
waszkiewicz
Member

Откуда:
Сообщений: 1090
хотя работать вообще не должно :(
не едут лыжи
22 окт 15, 13:54    [18311800]     Ответить | Цитировать Сообщить модератору
 Re: After Insert trigger  [new]
waszkiewicz
Member

Откуда:
Сообщений: 1090
insert acrn(ac,rn) values(1,'1')
insert acrn(ac,rn) values(1,'2')
select * from acrn

хз почему, но результат есть
22 окт 15, 13:56    [18311814]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить