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

Откуда:
Сообщений: 4
SQL 2005. Три таблицы.

1. Список заказов. 1 запись = 1 заказ
CREATE TABLE [dbo].[ЗаказНаОформл](
[Код] [int] IDENTITY(1,1) NOT NULL,
[НомЗак] [nvarchar](12) NULL,
[Тип] [int] NULL,
[Дата] [datetime] NULL)

2. Список операций по заказу. Привязана к номеру заказа ЗаказНаОформл.Код по полю ДляЗак,
может быть неск.записей на 1 заказ
CREATE TABLE [dbo].[ТехЛистОперации](
[Код] [int] IDENTITY(1,1) NOT NULL,
[ДляЗак] [int] NULL,
[Порядок] [smallint] NULL,
[Операция] [int] NULL)

3. Список параметров операции. Привязана к ТехЛистОперации.Код через поле ДляОпер. Может быть неск.записей
для одной операции.
CREATE TABLE [dbo].[ТехЛистПараметры](
[Код] [int] IDENTITY(1,1) NOT NULL,
[ДляОпер] [int] NULL,
[Параметр] [int] NULL,
[Значение] [nvarchar](40) NULL)

Вопрос: хочу сделать копию заказа с копированием всех его операций и параметров к ним. Затык случается, так как
при создании новых операций их ТехЛистОперации.Код меняется. Не знаю как его присвоить в новых параметрах.
Циклом все делается замечательно. Создаем заказ, потом перебираем все его операции с назначением новых индексов,
потом перебираем операции и копируем параметры к ним также циклом. Некрасиво и долго.
Как сделать через запросы?

К сообщению приложен файл. Размер - 58Kb
15 окт 12, 11:40    [13318814]     Ответить | Цитировать Сообщить модератору
 Re: как сделать INSERT INTO в связанных таблицах  [new]
Glory
Member

Откуда:
Сообщений: 104751
asergu
Как сделать через запросы?

Использовать JOIN для соединения в одном запросе нескольких таблиц ?
15 окт 12, 11:45    [13318848]     Ответить | Цитировать Сообщить модератору
 Re: как сделать INSERT INTO в связанных таблицах  [new]
asergu
Member

Откуда:
Сообщений: 4
я хочу сделать копию Заказа.

Делаю чтобы скопировать к примеру 76 заказ в базе-списке заказов
INSERT INTO ЗаказНаОформл SELECT НомЗак, Тип, Дата FROM ЗаказНаОформл WHERE [Код]=76

после этого мне надо копировать операции к нему и потом параметры для этих НОВЫХ операций,
таким образом, чтобы уже новые IDENTITY операций попали в поле ТехЛистПараметры.ДляОпер
В эти поля должны попасть именно те операции, которые были привязаны к старому заказу, но привязаны они
должны быть уже к новым операциям.
15 окт 12, 14:20    [13320209]     Ответить | Цитировать Сообщить модератору
 Re: как сделать INSERT INTO в связанных таблицах  [new]
Glory
Member

Откуда:
Сообщений: 104751
Изучите опцию OUTPUT команды INSERT
15 окт 12, 14:26    [13320261]     Ответить | Цитировать Сообщить модератору
 Re: как сделать INSERT INTO в связанных таблицах  [new]
asergu
Member

Откуда:
Сообщений: 4
спасибо. посмотрю
15 окт 12, 14:55    [13320557]     Ответить | Цитировать Сообщить модератору
 Re: как сделать INSERT INTO в связанных таблицах  [new]
trew
Member

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

SomewhereSomehow написал для вас ))
ссылка
15 окт 12, 17:30    [13321958]     Ответить | Цитировать Сообщить модератору
 Re: как сделать INSERT INTO в связанных таблицах  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Пример на форуме.
15 окт 12, 19:04    [13322463]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить