Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Copy data one table to another by using trigger  [new]
sakz
Member

Откуда:
Сообщений: 2
Здравствуйте друзья!
Я в SQL только начинаю программировать, хотел бы копировать данных из одно таблицы на другой.
например:
Tabl1 - id=int, name =nvarchar(100), date=datetime
Tble2 - id=int, name =nvarchar(100), date=datetime

если данных в Table2 существуют тогда проста обновить данных а если они не совпадают с Table1 тогда копируются.
хотел бы написать триггер? но когда проверяю в условия , что Table2.id<>Table1.id тогда ошибка , что The
multi-part identifier Table2.id" could not be bound.
может кто то подскажет правильный подход , может стоит использовать "Merge"
помогите пожалуйста если кому не сложно!
Заранее благодарен!
2 май 17, 12:53    [20449676]     Ответить | Цитировать Сообщить модератору
 Re: Copy data one table to another by using trigger  [new]
aleks2
Guest
Шоб минимизировать износ хрустальных шаров - приведи код свово "триггера".
2 май 17, 12:55    [20449683]     Ответить | Цитировать Сообщить модератору
 Re: Copy data one table to another by using trigger  [new]
iap
Member

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

в какой же момент должен срабытывать сей триггер?
А может, и вовсе не триггер нужен?

P.S. Судя по описанию, вы не читали синтаксис команд UPDATE и INSERT
2 май 17, 12:59    [20449697]     Ответить | Цитировать Сообщить модератору
 Re: Copy data one table to another by using trigger  [new]
sakz
Member

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

CREATE TRIGGER tr_CopyData
ON dbo.Products_buffer
AFTER INSERT,UPDATE
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

-- Insert statements for trigger here
Insert into SysDB.dbo.Produsts Select * from IMPORTDB.dbo.Products_buffer
WHERE SysDB.dbo.Produsts.id <> IMPORTDB.dbo.Products_buffer .id

END
GO
2 май 17, 13:07    [20449740]     Ответить | Цитировать Сообщить модератору
 Re: Copy data one table to another by using trigger  [new]
aleksrov
Member

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

Месье знает толк в извращениях.

По теме, Merge вам в помощь, подробнее go to BOL
2 май 17, 13:13    [20449784]     Ответить | Цитировать Сообщить модератору
 Re: Copy data one table to another by using trigger  [new]
aleks2
Guest
sakz
aleks2,

CREATE TRIGGER tr_CopyData
ON dbo.Products_buffer
AFTER INSERT,UPDATE
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

-- Insert statements for trigger here
Insert into SysDB.dbo.Produsts Select * from IMPORTDB.dbo.Products_buffer
WHERE SysDB.dbo.Produsts.id <> IMPORTDB.dbo.Products_buffer .id

END
GO


И нафига ЭТО делать в триггере?
2 май 17, 13:18    [20449822]     Ответить | Цитировать Сообщить модератору
 Re: Copy data one table to another by using trigger  [new]
aleks2
Guest
Insert into SysDB.dbo.Produsts 
   Select * from IMPORTDB.dbo.Products_buffer as b
	WHERE not exists( select * from SysDB.dbo.Produsts as p where p.id = b.id )
2 май 17, 13:21    [20449845]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить