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

Откуда:
Сообщений: 1688
Здрасте.
Как сделать в одном запросе два Insert?
две таблицы:
1. добавляем в первую таблицу строку.
2. берем ID этой строки и добавляем его в первое поле второй таблицы
3. добавляем во второе поле второй таблицы прочую инфу (текст например)

как реализовать?

спасибо.
10 янв 10, 19:10    [8162307]     Ответить | Цитировать Сообщить модератору
 Re: вроде как два INSERT, но такая команда не возможна  [new]
vladka63
Member

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

покурил...
хотя не прав..
получается

insert в первую таблицу
insert во вторую таблицу с вложенным select к первой таблице..

буду пробовать))
10 янв 10, 19:16    [8162314]     Ответить | Цитировать Сообщить модератору
 Re: вроде как два INSERT, но такая команда не возможна  [new]
iap
Member

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

1. триггер на вставку у первой таблицы.
2. (Version>=9.0) OUTPUT в INSERT
INSERT T1
OUTPUT inserted.ID INTO T2(T1_ID)
SELECT ....
FROM ....
WHERE ....
Есть ограничения для этого способа
http://msdn.microsoft.com/ru-ru/library/ms174335.aspx
10 янв 10, 19:40    [8162352]     Ответить | Цитировать Сообщить модератору
 Re: вроде как два INSERT, но такая команда не возможна  [new]
jekaSQL
Member

Откуда: Бабруйск
Сообщений: 596
А вам знакомы @@IDENTITY, SCOPE_IDENTITY и IDENT_CURRENT? Если нет, то почитайте справку. Если да, тогда я пас :)
10 янв 10, 23:43    [8163023]     Ответить | Цитировать Сообщить модератору
 Re: вроде как два INSERT, но такая команда не возможна  [new]
vladka63
Member

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

) это все знакомо))
не ЗНАЮ, как передать этот id во вторую таблицу.
вот учусь.. и прошу помочь.

т.е
// задаю входящие параметры
ALTER PROCEDURE AddNT
@NamePro varchar(MAX), // это текст1 - берется со страницы
@NameTo varchar(MAX), // это текст2 - берется со страницы
@IdNP int, // это число берется со страницы
@IdPro INT OUTPUT, // это Id текст1 после внесения в таблицу aaSpraPro
@IdTo INT OUTPUT // это Id текст2 после внесения в таблицу aaSpraTo

// начинаемAS
BEGIN
SET NOCOUNT ON;
// добавляю в таблицу aaSpraPro - @NamePro
INSERT INTO aaSpraPro(NamePro) VALUES (@NamePro)
// присваиваю
SET @IdPro = @@identity

// добавляю в таблицу aaSpraTo - @NameTo

INSERT INTO aaSpraTo(NameTo) VALUES (@NameTo)
// присваиваю
SET @IdTo = @@identity

// а теперь все добавляют в третью таблицу aKatTor
INSERT INTO aKatTor(IdNP, IdPro, IdTo) VALUES (@IdNP, @IdPro, @IdTo)


END

вот мне и не ясно - как передать Id.. я присваиваю.. и так понимаю - это не правильно..
11 янв 10, 09:04    [8163457]     Ответить | Цитировать Сообщить модератору
 Re: вроде как два INSERT, но такая команда не возможна  [new]
iap
Member

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

значит, у Вас ТРИ INSERTа в ТРИ таблицы, а в теме написано "два INSERT"?
А зачем надо было обманывать? Вариант с OUTPUT не для Вас в любом случае.
11 янв 10, 09:18    [8163485]     Ответить | Цитировать Сообщить модератору
 Re: вроде как два INSERT, но такая команда не возможна  [new]
vladka63
Member

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

согласен, что не коректно обозначил тему.
потмоу что на момент написания не знал - что вложенных инсертов нет.
11 янв 10, 09:21    [8163493]     Ответить | Цитировать Сообщить модератору
 Re: вроде как два INSERT, но такая команда не возможна  [new]
vladka63
Member

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

значит, у Вас ТРИ INSERTа в ТРИ таблицы, а в теме написано "два INSERT"?
А зачем надо было обманывать? Вариант с OUTPUT не для Вас в любом случае.

а вообще мне очень "нравится" такая помощь)))
"Вариант с OUTPUT не для Вас в любом случае" - а чего тогда для меня-то?

равносильно было-бы:
"Коллеги, не правильно работает запрос - помогите пожалуйста разобраться!!"
Ответ:
"У вас не работает запрос, потмоу что он не правильный"
класс)))
11 янв 10, 09:30    [8163521]     Ответить | Цитировать Сообщить модератору
 Re: вроде как два INSERT, но такая команда не возможна  [new]
iap
Member

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

значит, у Вас ТРИ INSERTа в ТРИ таблицы, а в теме написано "два INSERT"?
А зачем надо было обманывать? Вариант с OUTPUT не для Вас в любом случае.

а вообще мне очень "нравится" такая помощь)))
"Вариант с OUTPUT не для Вас в любом случае" - а чего тогда для меня-то?

равносильно было-бы:
"Коллеги, не правильно работает запрос - помогите пожалуйста разобраться!!"
Ответ:
"У вас не работает запрос, потмоу что он не правильный"
класс)))
А Вы читаете, что Вам здесь пишут? Похоже, нет.
Если учитывать контекст обсуждения, то легко понять, что я отказался от своего предложения №2
11 янв 10, 09:36    [8163545]     Ответить | Цитировать Сообщить модератору
 Re: вроде как два INSERT, но такая команда не возможна  [new]
vladka63
Member

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

я очень внимательно читаю советы.
в том, что вы отказались - ничего страшного.)
потому и учюсь, что хочу знать.
11 янв 10, 10:02    [8163655]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить