Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Как вставить значение с одной таблицы в другую таблицу с помощью триггера?  [new]
Abzal
Member

Откуда:
Сообщений: 65
Здравствуйте! Подскажите пожалуйста, с созданием триггера.
Мне нужно создать триггер, который будет выполнять запросы с Таблицы [DataArhiv] (при поступлении данных в Таблицу [DataArhiv]) и вставить в Таблицу [Test]
запрос выглядет так:

select substring(TU,1,7), sum(AmPower) as Am, [DT] as D
from DataArhiv
where Priz_TU=2 and substring(TU,1,7)=substring(TU,1,7) and AmPower>0
Group by substring(TU,1,7), DT

Заранее благодарю!!!
16 июн 09, 12:15    [7304269]     Ответить | Цитировать Сообщить модератору
 Re: Как вставить значение с одной таблицы в другую таблицу с помощью триггера?  [new]
Алексей2003
Member

Откуда: Москва
Сообщений: 5645
заранее пожалуйста!!!
в триггерах есть таблицы inserted и deleted
смотрите в BOL!!!

для спящего время бодрствования равносильно сну
16 июн 09, 12:18    [7304290]     Ответить | Цитировать Сообщить модератору
 Re: Как вставить значение с одной таблицы в другую таблицу с помощью триггера?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36803
Алексей2003
смотрите в BOL!!!

Не так. Надо: "смотрите в BOL!!!!!!1111одинодинодин"
16 июн 09, 12:21    [7304314]     Ответить | Цитировать Сообщить модератору
 Re: Как вставить значение с одной таблицы в другую таблицу с помощью триггера?  [new]
Abzal
Member

Откуда:
Сообщений: 65
Алексей2003,

Спасибо! Я про триггера читал, но все равно не понятно. Можете хотя бы привести примеры
16 июн 09, 12:43    [7304464]     Ответить | Цитировать Сообщить модератору
 Re: Как вставить значение с одной таблицы в другую таблицу с помощью триггера?  [new]
Glory
Member

Откуда:
Сообщений: 104760
Abzal
Алексей2003,

Спасибо! Я про триггера читал, но все равно не понятно. Можете хотя бы привести примеры

BOL - Using the inserted and deleted Tables
ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.en/udb9/html/ed84567f-7b91-4b44-b5b2-c400bda4590d.htm
16 июн 09, 12:48    [7304514]     Ответить | Цитировать Сообщить модератору
 Re: Как вставить значение с одной таблицы в другую таблицу с помощью триггера?  [new]
Abzal
Member

Откуда:
Сообщений: 65
Glory
Abzal
Алексей2003,

Спасибо! Я про триггера читал, но все равно не понятно. Можете хотя бы привести примеры

BOL - Using the inserted and deleted Tables
ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.en/udb9/html/ed84567f-7b91-4b44-b5b2-c400bda4590d.htm



Ссылка не доступно
16 июн 09, 13:00    [7304629]     Ответить | Цитировать Сообщить модератору
 Re: Как вставить значение с одной таблицы в другую таблицу с помощью триггера?  [new]
Glory
Member

Откуда:
Сообщений: 104760
Abzal
Glory
Abzal
Алексей2003,

Спасибо! Я про триггера читал, но все равно не понятно. Можете хотя бы привести примеры

BOL - Using the inserted and deleted Tables
ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.en/udb9/html/ed84567f-7b91-4b44-b5b2-c400bda4590d.htm



Ссылка не доступно

А BOL у вас установлен ?
16 июн 09, 13:05    [7304665]     Ответить | Цитировать Сообщить модератору
 Re: Как вставить значение с одной таблицы в другую таблицу с помощью триггера?  [new]
Abzal
Member

Откуда:
Сообщений: 65
Glory,

Нет, честно сказать я даже незнаю, что такое BOL
16 июн 09, 13:07    [7304690]     Ответить | Цитировать Сообщить модератору
 Re: Как вставить значение с одной таблицы в другую таблицу с помощью триггера?  [new]
Glory
Member

Откуда:
Сообщений: 104760
Abzal
Glory,

Нет, честно сказать я даже незнаю, что такое BOL

А как вы изучаете MSSQL, если даже не установили его хелп ?
16 июн 09, 13:10    [7304704]     Ответить | Цитировать Сообщить модератору
 Re: Как вставить значение с одной таблицы в другую таблицу с помощью триггера?  [new]
Алексей2003
Member

Откуда: Москва
Сообщений: 5645
я почему то так и подозревал, что БОЛ.
открываем список сообщений. открываем топ 10 вопросов. 4ый вопрос. там все написано.

2Гавриленко Сергей Алексеевич
а потом "адынадынЁЁЁ"

для спящего время бодрствования равносильно сну
16 июн 09, 13:11    [7304708]     Ответить | Цитировать Сообщить модератору
 Re: Как вставить значение с одной таблицы в другую таблицу с помощью триггера?  [new]
Abzal
Member

Откуда:
Сообщений: 65
Glory
Abzal
Glory,

Нет, честно сказать я даже незнаю, что такое BOL

А как вы изучаете MSSQL, если даже не установили его хелп ?



Что-то не нашел help. Где можно его скачать?
16 июн 09, 13:44    [7304954]     Ответить | Цитировать Сообщить модератору
 Re: Как вставить значение с одной таблицы в другую таблицу с помощью триггера?  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Abzal
Glory
Abzal
Glory,

Нет, честно сказать я даже незнаю, что такое BOL

А как вы изучаете MSSQL, если даже не установили его хелп ?



Что-то не нашел help. Где можно его скачать?
Что такое BOL
Можно и не качать
CREATE TRIGGER (Transact-SQL)
16 июн 09, 14:01    [7305062]     Ответить | Цитировать Сообщить модератору
 Re: Как вставить значение с одной таблицы в другую таблицу с помощью триггера?  [new]
Abzal
Member

Откуда:
Сообщений: 65
iap,

Спасибо!
16 июн 09, 14:11    [7305149]     Ответить | Цитировать Сообщить модератору
 Re: Как вставить значение с одной таблицы в другую таблицу с помощью триггера?  [new]
Abzal
Member

Откуда:
Сообщений: 65
Вот типа написал триггер, но не получается, Помогите?!

CREATE TRIGGER Am ON [dbo].[DataArhiv]
FOR INSERT
AS
begin
declare @KodTPS varchar (7)
declare @AmPower int
declare @DT datetime


select substring(TU,1,7), sum(AmPower), [DT]
from DataArhiv
where Priz_TU=2 and substring(TU,1,7)=substring(TU,1,7) and AmPower>0
Group by substring(TU,1,7), [DT]

Insert into dbo.AmTPS
select @KodTPS=substring(TU,1,7), @AmPower=sum(AmPower), @DT=[DT]
from INSERTED

end
end
16 июн 09, 15:00    [7305491]     Ответить | Цитировать Сообщить модератору
 Re: Как вставить значение с одной таблицы в другую таблицу с помощью триггера?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36803
Вы еще и свой синтаксис придумали, я смотрю.
16 июн 09, 15:01    [7305496]     Ответить | Цитировать Сообщить модератору
 Re: Как вставить значение с одной таблицы в другую таблицу с помощью триггера?  [new]
Glory
Member

Откуда:
Сообщений: 104760
Мда уж

CREATE TRIGGER Am ON [dbo].[DataArhiv]
FOR INSERT
AS
begin

Insert into dbo.AmTPS
select substring(TU,1,7), sum(AmPower), DT
from INSERTED
Group by substring(TU,1,7), [DT]

end
16 июн 09, 15:02    [7305501]     Ответить | Цитировать Сообщить модератору
 Re: Как вставить значение с одной таблицы в другую таблицу с помощью триггера?  [new]
iljy
Guest
Abzal,

и не должно получаться! вы сообщения об ошибках читаете? сервер вам их не для собственного удовольсткия выдает.
16 июн 09, 15:03    [7305508]     Ответить | Цитировать Сообщить модератору
 Re: Как вставить значение с одной таблицы в другую таблицу с помощью триггера?  [new]
Abzal
Member

Откуда:
Сообщений: 65
Glory
Мда уж

CREATE TRIGGER Am ON [dbo].[DataArhiv]
FOR INSERT
AS
begin

Insert into dbo.AmTPS
select substring(TU,1,7), sum(AmPower), DT
from INSERTED
Group by substring(TU,1,7), [DT]

end


а условие где написать? where Priz_TU=2 and substring(TU,1,7)=substring(TU,1,7) and AmPower>0
16 июн 09, 15:11    [7305553]     Ответить | Цитировать Сообщить модератору
 Re: Как вставить значение с одной таблицы в другую таблицу с помощью триггера?  [new]
Glory
Member

Откуда:
Сообщений: 104760
Abzal
Glory
Мда уж

CREATE TRIGGER Am ON [dbo].[DataArhiv]
FOR INSERT
AS
begin

Insert into dbo.AmTPS
select substring(TU,1,7), sum(AmPower), DT
from INSERTED
Group by substring(TU,1,7), [DT]

end


а условие где написать? where Priz_TU=2 and substring(TU,1,7)=substring(TU,1,7) and AmPower>0

А где обычно пишутся условия where ?
16 июн 09, 15:13    [7305563]     Ответить | Цитировать Сообщить модератору
 Re: Как вставить значение с одной таблицы в другую таблицу с помощью триггера?  [new]
Abzal
Member

Откуда:
Сообщений: 65
Glory


А где обычно пишутся условия where ?


я вот так написал
CREATE TRIGGER Am ON [dbo].[DataArhiv]
FOR INSERT
AS
begin

Insert into dbo.AmTPS
select substring(TU,1,7), sum(AmPower), DT
from INSERTED
where Priz_TU=2 and substring(TU,1,7)=substring(TU,1,7) and AmPower>0
Group by substring(TU,1,7), [DT]
16 июн 09, 15:15    [7305581]     Ответить | Цитировать Сообщить модератору
 Re: Как вставить значение с одной таблицы в другую таблицу с помощью триггера?  [new]
iljy
Guest
CREATE TRIGGER Am ON [dbo].[DataArhiv]
FOR INSERT
AS
begin

Insert into dbo.AmTPS
select substring(TU,1,7), sum(AmPower), DT
from INSERTED
where Priz_TU=2 and 
 substring(TU,1,7)=substring(TU,1,7)
 and AmPower>0
Group by substring(TU,1,7), [DT]
это условие зачем??
16 июн 09, 15:18    [7305601]     Ответить | Цитировать Сообщить модератору
 Re: Как вставить значение с одной таблицы в другую таблицу с помощью триггера?  [new]
Алексей2003
Member

Откуда: Москва
Сообщений: 5645
2Abzal
а вы думаете в inserted попадает вся таблица и ее каждый раз надо фильтровать? а представьте что там несколько десятков млн записей.. и их гонять.. пробовали копировать 1гб за доли секунды из одного места в другое?

для спящего время бодрствования равносильно сну
16 июн 09, 15:18    [7305602]     Ответить | Цитировать Сообщить модератору
 Re: Как вставить значение с одной таблицы в другую таблицу с помощью триггера?  [new]
Abzal
Member

Откуда:
Сообщений: 65
iljy
CREATE TRIGGER Am ON [dbo].[DataArhiv]
FOR INSERT
AS
begin

Insert into dbo.AmTPS
select substring(TU,1,7), sum(AmPower), DT
from INSERTED
where Priz_TU=2 and 
 substring(TU,1,7)=substring(TU,1,7)
 and AmPower>0
Group by substring(TU,1,7), [DT]
это условие зачем??


Это для того, чтобы объединял, если дата одинакого
16 июн 09, 15:22    [7305626]     Ответить | Цитировать Сообщить модератору
 Re: Как вставить значение с одной таблицы в другую таблицу с помощью триггера?  [new]
Glory
Member

Откуда:
Сообщений: 104760
Abzal
iljy
CREATE TRIGGER Am ON [dbo].[DataArhiv]
FOR INSERT
AS
begin

Insert into dbo.AmTPS
select substring(TU,1,7), sum(AmPower), DT
from INSERTED
where Priz_TU=2 and 
 substring(TU,1,7)=substring(TU,1,7)
 and AmPower>0
Group by substring(TU,1,7), [DT]
это условие зачем??


Это для того, чтобы объединял, если дата одинакого

Как where может что-то объединять ? Вы понимаете, что вообще вычисляет выражение substring(TU,1,7)=substring(TU,1,7) ?
16 июн 09, 15:24    [7305640]     Ответить | Цитировать Сообщить модератору
 Re: Как вставить значение с одной таблицы в другую таблицу с помощью триггера?  [new]
Abzal
Member

Откуда:
Сообщений: 65
Glory,

точно, я ошибся, он вообще лишний
16 июн 09, 15:32    [7305679]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить