Я пишу SQL-скрипт для генерации тестовых данных для нашей базы данных.Я генерирую данные в табличных переменных (чтобы я мог отслеживать их позже), а затем вставляю их в реальные таблицы.Проблема в том, что мне нужно отследить, какие строки я добавил в родительскую таблицу, чтобы потом можно было генерировать ее дочерние данные в скрипте.Например:
CREATE TABLE Customer (
CustomerId INT IDENTITY,
Name VARCHAR(50)
)
CREATE TABLE Order (
OrderId INT IDENTITY,
CustomerId INT,
Product VARCHAR(50)
)
Итак, в моем скрипте я создаю эквивалентные переменные таблицы:
DECLARE @Customer TABLE (
CustomerId INT IDENTITY,
Name VARCHAR(50)
) -- populate customers
DECLARE @Order TABLE (
OrderId INT IDENTITY,
CustomerId INT,
Product VARCHAR(50)
) -- populate orders
И я генерирую и вставляю примеры данных в каждую переменную таблицы.
Теперь, когда я собираюсь вставить клиентов из моей табличной переменной в реальную таблицу, столбец CustomerId
в переменной таблицы станет бессмысленным, поскольку у реальной таблицы есть свой собственный идентификатор для ее столбца CustomerId
.
Есть ли способ, которым я могу отследить новый идентификатор каждой строки, вставленной в реальную таблицу, в моей табличной переменной, чтобы я мог использовать правильный CustomerId
для записей заказа?Или есть ли лучший способ, которым я должен идти об этом?
(Примечание: я изначально запустил приложение для генерации тестовых данных, но оно работало слишком медленно во время вставки, так как нужно сгенерировать> 1 000 000 записей.)