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

Откуда:
Сообщений: 181
есть таблица, поле LastUpdate - дата/время последнего обновления строки
хочу заполнять его в триггере на update
update inserted не разрешает

а как поле LastUpdate установить в getdate()???
28 июн 05, 15:52    [1656297]     Ответить | Цитировать Сообщить модератору
 Re: таблица Inserted  [new]
VirusXP
Member

Откуда: Москва
Сообщений: 2266
установить соответствующее значение по умолчанию через вызов функции (внизу при дизайне таблицы)
28 июн 05, 15:56    [1656315]     Ответить | Цитировать Сообщить модератору
 Re: таблица Inserted  [new]
VirusXP
Member

Откуда: Москва
Сообщений: 2266
или можт я чё не так понЯл?
28 июн 05, 15:57    [1656322]     Ответить | Цитировать Сообщить модератору
 Re: таблица Inserted  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
CREATE TRIGGER ut_Table1 ON Table1
FOR UPDATE AS
  SET NOCOUNT ON
  UPDATE 
    T
  SET
     LastUpdate = GETDATE()
  FROM
    Table1 T INNER JOIN inserted i ON
    T.KeyField = i.KeyField
28 июн 05, 15:59    [1656325]     Ответить | Цитировать Сообщить модератору
 Re: таблица Inserted  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
2VirusXP: ваше предложение сработает только для инсертов. Для апдейтов - нет.

2ange: https://www.sql.ru/articles/mssql/2005/030701ChangesLogging.shtml#27
Это конкретно по вопросу. Кстати, статья целиком тоже может оказаться вам полезной.
28 июн 05, 15:59    [1656328]     Ответить | Цитировать Сообщить модератору
 Re: таблица Inserted  [new]
VirusXP
Member

Откуда: Москва
Сообщений: 2266
инетересно, а поля таблицы inserted инициализируются значениями по умолчанию?! :-P
28 июн 05, 16:02    [1656339]     Ответить | Цитировать Сообщить модератору
 Re: таблица Inserted  [new]
itON
Member

Откуда: Москва
Сообщений: 391
VirusXP
инетересно, а поля таблицы inserted инициализируются значениями по умолчанию?! :-P

Они заполняются при операциях изменения в таблице с триггером.
28 июн 05, 16:15    [1656390]     Ответить | Цитировать Сообщить модератору
 Re: таблица Inserted  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
VirusXP
инетересно, а поля таблицы inserted инициализируются значениями по умолчанию?! :-P


Для операции INSERT да, при условии отсутствия этих полей явно в инструкции.
28 июн 05, 16:31    [1656486]     Ответить | Цитировать Сообщить модератору
 Re: таблица Inserted  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
Таблица inserted существует во всех типах триггеров: на update, на insert, на delete.
- в случае delete она пустая
- в случае insert там будут те значения, которые были в запросе явно; если явно не указано, но есть дефолт, то дефолтные; если ни явно не указано, ни дефолта, то null
- в случае update там будут те значения, что указаны в запросе явно; если явно не указано, то существующие

P.S. Чем гадать и спрашивать, сделайте простейший тест: создайте триггер и вставьте в него первой строкой
select * from inserted
И выполняйте операции, которые вызовут срабатывание данного триггера. Все вопросы отпадут сами собой.
28 июн 05, 16:34    [1656509]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить