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

Откуда:
Сообщений: 339
Добрый день .Скажите пожалуйста можно поместить в виртуальную таблицу inserted больше одной строки .
7 июл 11, 10:11    [10936640]     Ответить | Цитировать Сообщить модератору
 Re: Inserted  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
Karen__84,

INSERT INTO Table(field)
SELECT 1 UNION ALL SELECT 2
Строки будет 2. Тоже самое с апдейтом, если фильтром отберется несколько строк.
7 июл 11, 10:14    [10936666]     Ответить | Цитировать Сообщить модератору
 Re: Inserted  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
Karen__84
Добрый день .Скажите пожалуйста можно поместить в виртуальную таблицу inserted больше одной строки .
В inserted напрямую ничего поместить нельзя (read only)
Зато можно вставить в таблицу много строк одним INSERTом
(INSERT ... VALUES(..., ..., ..., ..., ...),(..., ..., ..., ..., ...), ...; INSERT ... EXEC ...; INSERT ... SELECT и т.п.)
7 июл 11, 10:15    [10936676]     Ответить | Цитировать Сообщить модератору
 Re: Inserted  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Karen__84
Добрый день .Скажите пожалуйста можно поместить в виртуальную таблицу inserted больше одной строки .
В виртуальных таблицах содержится столько строк, сколько затронула соответствующая операция.
7 июл 11, 10:31    [10936791]     Ответить | Цитировать Сообщить модератору
 Re: Inserted  [new]
Karen__84
Member

Откуда:
Сообщений: 339
уменя есть таблица

create table dbo.Person
(
id int identity not null primary key,
Name varchar(50),
Age int




)

и тригер
create trigger TTT on dbo Person after insert
as
declare a int
select a=Age from inserted
if(a<5)
begin
rollback tran

end


go
insert into dbo.Person(Name, Age)values("dfdfd",1);
insert into dbo.Person(Name, Age)values("dfdfd",2);
insert into dbo.Person(Name, Age)values("dfdfd",3);
go



сколько раз сработает тригер ?
7 июл 11, 10:35    [10936838]     Ответить | Цитировать Сообщить модератору
 Re: Inserted  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Karen__84
...сколько раз сработает тригер ?
Один раз.
7 июл 11, 10:38    [10936853]     Ответить | Цитировать Сообщить модератору
 Re: Inserted  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
tpg
Karen__84
...сколько раз сработает тригер ?
Один раз.
Пардон!
Один раз на каждую инструкцию (так правильнее).
7 июл 11, 10:39    [10936860]     Ответить | Цитировать Сообщить модератору
 Re: Inserted  [new]
Anddros
Member

Откуда:
Сообщений: 1077
Karen__84
уменя есть таблица

create table dbo.Person
(
id int identity not null primary key,
Name varchar(50),
Age int




)

и тригер
create trigger TTT on dbo Person after insert
as
declare a int
select a=Age from inserted
if(a<5)
begin
rollback tran

end


go
insert into dbo.Person(Name, Age)values("dfdfd",1);
insert into dbo.Person(Name, Age)values("dfdfd",2);
insert into dbo.Person(Name, Age)values("dfdfd",3);
go



сколько раз сработает тригер ?
ни сколько. В нем ошибки. И вы его не сможете создать в таком виде
7 июл 11, 10:42    [10936885]     Ответить | Цитировать Сообщить модератору
 Re: Inserted  [new]
baracs
Member

Откуда: Москва
Сообщений: 7217
Karen__84
сколько раз сработает тригер ?
Недавно обсуждалось.
7 июл 11, 10:43    [10936902]     Ответить | Цитировать Сообщить модератору
 Re: Inserted  [new]
Vicont_rtf
Member

Откуда:
Сообщений: 64
Попробуй сделать так, будет работать в любом случае вне зависимости от кол-ва записей.

if exists(select 1 from inserted where Age < 5)
begin
rollback tran
end
7 июл 11, 12:57    [10938151]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить