Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помагите написать тригер на Insert / 5 сообщений из 5, страница 1 из 1
02.12.2004, 18:30
    #32810525
Spavel_74
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помагите написать тригер на Insert
Есть три таблицы
DefaultAUser (id,name)
ActionUser (id,idpdata,idtypespr,name)
TypeSpr (id,name)

Нужно чтобы при добавлени в TypeSpr добавлялись все записи из DefaultAUser в ActionUser где idtypespr был равен новому id из TypeSpr
Наверно глупо. Но всё равно в тупеке.
...
Рейтинг: 0 / 0
02.12.2004, 22:03
    #32810682
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помагите написать тригер на Insert
Ну, так а проблема-то в чем?

В хранимых процедурах создаешь функцию. Что-то вроде:

Если версия VFP8

Код: plaintext
1.
2.
3.
4.
5.
6.
FUNCTION UpdActionUser

INSERT INTO ActionUser (idtypespr,name) ;
SELECT TypeSpr.id, DefaultAUser.name FROM DefaultAUser

ENDFUNC

Если более младшая версия, тогда так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
FUNCTION UpdActionUser
SELECT TypeSpr.id as idType, DefaultAUser.name ;
FROM DefaultAUser ;
INTO CURSOR curTMP NOFILTER

select ActionUser
APPEND FROM (DBF('curTMP'))
USE IN curTMP

ENDFUNC

В реквизитах таблицы TypeSpr в триггере Insert (закладка Table -> Trigger Insert) прописываешь вызов этой функции UpdActionUser(). Все.

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

Подробнее, что такое триггер в FoxPro и как с ним работать можешь почитать здесь

http://www.foxclub.ru/kb/index.php?sid=114698&aktion=artikel&rubrik=004&id=104&lang=ru
...
Рейтинг: 0 / 0
03.12.2004, 11:19
    #32811276
Spavel_74
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помагите написать тригер на Insert
Извините что не уточнил,мне нужен тригер для TypeSpr в базе SQL Server 2000.
...
Рейтинг: 0 / 0
03.12.2004, 13:30
    #32811791
PaulWist_asGuest
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помагите написать тригер на Insert
Например так

CREATE TRIGGER InsertFirstTable ON dbo.FirstTable
FOR INSERT
AS
Insert into SecondTable (id_FirstTable)
select I.Id from Inserted I
...
Рейтинг: 0 / 0
03.12.2004, 14:14
    #32811943
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помагите написать тригер на Insert
Вообще-то, это лучше на форме по SQL спросить. Если вставка в таблицу TypeSpr идет по одной записи за раз, то можно написать так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
CREATE TRIGGER TypeSpr_insActionUser
ON TypeSpr 
FOR INSERT
AS

INSERT INTO ActionUser (idtypespr,name) 
SELECT Inserted.id, DefaultAUser.name 
FROM DefaultAUser, Inserted

А если в таблицу TypeSpr может сразу вставляться группа записей, то требуется уточнение, что именно добавлять в ActionUser. Точнее, сколько записей. В приведенном синтаксисе, просто каждая запись из таблицы DefaultAUser будет добавлена столько раз, сколько записей вставляется в таблицу TypeSpr.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помагите написать тригер на Insert / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]