0

Я бегу по своему собственному проекту. Раньше я использовал базу данных доступа MS, но теперь ее недостаточно для обработки таких огромных данных.SQL Server хранимой процедуры каскад вставить три таблицы

Моя проблема заключается в использовании хранимых процедур, и мне нужен совет.

Я пробую каскадную вставку для 3 столов. первая таблица содержит только номера соглашений, второй адрес таблицы для соглашения и последний материал таблицы для этих адресов. одно соглашение может иметь много адресов, и все эти адреса могут иметь много вещей.

Scope_identity, output и т. Д. Хорошо работает, но когда у меня есть только одна запись для всех таблиц.

Я надеюсь, что смогу объяснить систему. Простая помощь будет приятной.

ответ

0

Создайте временную таблицу с полями, которые вы хотите вернуть из инструкции insert, и добавьте в нее опции OUTPUT и INTO.

Вы также свернете свои 3 вставных оператора в транзакцию.

Here - это ссылка с более подробной информацией.

CREATE TABLE #tmp (
    Id int, 
    Name varchar(20), 
    Email varchar(50)) 

INSERT INTO Customer (
    Name, Email) 
OUTPUT INSERTED.Id, INSERTED.Name, INSERTED.Email, 
INTO #tmp 
SELECT DISTINCT 
    Name, Email 
FROM StagingTable 
+0

Я решил это странным и долгим способом. sql server. datatables для сервера sql, в то время как цикл и т. д. хорошо работали. его быстрый, но странный – user2971993

Смежные вопросы