Как с помощью массовой вставки SQL-сервера можно вставлять в несколько таблиц, когда существует связь с внешним ключом?
Я имею в виду, что таблицы такие,
CREATE TABLE [dbo].[UndergroundFacilityShape]
([FacilityID] [int] IDENTITY(1,1) NOT NULL,
[FacilityTypeID] [int] NOT NULL,
[FacilitySpatialData] [geometry] NOT NULL)
CREATE TABLE [dbo].[UndergroundFacilityDetail]
([FacilityDetailID] [int] IDENTITY(1,1) NOT NULL,
[FacilityID] [int] NOT NULL,
[Name] [nvarchar](50) NOT NULL,
[Value] [nvarchar](255) NOT NULL)
Таким образом, каждаяUndergroundFacilityShape может иметь несколько UndergroundFacilityDetail.Проблема в том, что FacilityID не определен до тех пор, пока не будет выполнена вставка, поскольку это столбец идентификаторов.Если я массово вставляю данные в таблицу Shape, то не могу сопоставить их с данными, которые есть в моем приложении C #.
Я предполагаю, что решение состоит в том, чтобы запустить оператор SQL, чтобы выяснить, чтоСледующее значение идентификатора - и вывести значения самостоятельно и отключить столбец идентификаторов для массовой вставки?Имейте в виду, что только один человек будет запускать это приложение для вставки данных, и это будет происходить нечасто, поэтому нам не нужно беспокоиться о столкновении значений идентичности или о чем-то подобном.
Я пытаюсьимпортировать тысячи записей, что занимает около 3 минут с использованием стандартных вставок, но массовая вставка займет считанные секунды.
В будущем я ожидаю импортировать данные, которые намного больше, чем «тысячи» записей.