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

Откуда: Москва
Сообщений: 116
доброго времени суток, коллеги !

появилась такая мысля, хочу транкейтить таблицу перед insert.
Но я хочу чтобы это работало автоматом, то есть через триггер, или через что то .

сам код сейчас :


truncate table table_x

insert into tt 
OUTPUT inserted.val into table_x
SELECT * 
FROM table_source


можно ли как нибудь прописать триггер (или что то, что я не знаю)
чтобы не писать каждый раз truncate table_x
8 сен 11, 11:04    [11245729]     Ответить | Цитировать Сообщить модератору
 Re: truncate table перед insert  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31949
nizamovich
можно ли как нибудь прописать триггер (или что то, что я не знаю)
чтобы не писать каждый раз truncate table_x
Да, можно сделать instead of триггер

Но лучьше как щас писать truncate table...
8 сен 11, 11:16    [11245839]     Ответить | Цитировать Сообщить модератору
 Re: truncate table перед insert  [new]
aleks2
Guest
не каждому пользователю дано выполнить
truncate table 
8 сен 11, 11:25    [11245939]     Ответить | Цитировать Сообщить модератору
 Re: truncate table перед insert  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
aleks2
не каждому пользователю дано выполнить
truncate table 
... и не для любой таблицы.
8 сен 11, 12:10    [11246375]     Ответить | Цитировать Сообщить модератору
 Re: truncate table перед insert  [new]
nizamovich
Member

Откуда: Москва
Сообщений: 116
alexeyvg,

как я понимаю , instead of ...
заменяет код вставки, или я не правильно понимаю ?

и почему truncate лучше ?

просто эта таблица будет использоваться постоянно , и чтобы не надо было каждый раз прописывать.
9 сен 11, 12:02    [11252842]     Ответить | Цитировать Сообщить модератору
 Re: truncate table перед insert  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31949
nizamovich
alexeyvg,

как я понимаю , instead of ...
заменяет код вставки, или я не правильно понимаю ?
instead of триггер - это процедура, которая вызывается вместо вставки данных в таблицу.
В ней можно делать вставку данных, можно не делать, можно очищать таблицу - всё, что угодно.

nizamovich
и почему truncate лучше ?

просто эта таблица будет использоваться постоянно , и чтобы не надо было каждый раз прописывать.
Код в триггерах менее контролируемый. Если у вас мало мест, где делается вставка, то проще просто писать код очистки таблицы в этих местах.
9 сен 11, 13:26    [11253543]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить