Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
RXLayer Гость
|
Добавлено: Пт Май 07 2004 18:30 Заголовок сообщения: добавления строк в 2-е таблицы(MS SQL Server 2000) |
|
|
люди научите как правильно сделать.
Есть 2-е таблицы:
C одинаковыми ключами, тип связи 1-н ко 1-му. Необходимо за раз добавлять значение ключа в 2-е таблицы, с первичным и вторичным ключем, как это сделать, ведь sql server 2000 позволяет за раз делать запрос на добавление только в 1-у таблицу?
Значение ключа при добавлении данных в таблицу с первичным ключем инкрементируется(тип 1-го ключа Integer). |
|
Вернуться к началу |
|
|
glory
Зарегистрирован: 22.04.2004 Сообщения: 4
|
Добавлено: Сб Май 08 2004 04:29 Заголовок сообщения: |
|
|
Это можно сделать с помощью Stored Procedure. Пример для двух таблиц. У каждой из таблиц поле id - ключевое. Таблицы связаны по этому полю связью один к одному. У таблицы Tab1 ключевое поле - счетчик.
Первая таблица:
Tab1(
id int (счетчик),
val1 nvarchar(10)
)
Вторая таблица:
Tab2(
id int,
val1 nvarchar(10)
)
Процедура:
CREATE PROCEDURE spInsertData
@val1 nvarchar(10),
@val2 nvarchar(10),
@id int OUTPUT
AS
INSERT INTO Tab1 (val1) VALUES (@val1)
Set @id = SCOPE_IDENTITY()
INSERT INTO Tab2 (id,val2) VALUES (@id,@val2)
GO
То есть вводятся данные в первую таблицу. Потом с помощью SCOPE_IDENTITY() возвращается последнее значение счетчика (то есть введенное значение в поле id) в переменную @id и затем вводятся данные во вторую таблицу.
Удачи. |
|
Вернуться к началу |
|
|
nova5 Гость
|
Добавлено: Сб Май 08 2004 11:57 Заголовок сообщения: |
|
|
А INSTEAD OF TRIGGER на вставку не легче сделать, зачем так сложно!? |
|
Вернуться к началу |
|
|
RXLayer Гость
|
Добавлено: Вс Май 09 2004 00:46 Заголовок сообщения: |
|
|
glory и nova5 огромнейшее спасибо вам за советы!!! |
|
Вернуться к началу |
|
|
|