Мне дали набор данных в EXCEL (600+ строк), которые мне нужно вставить в 3 разные таблицы (Членство, Учетная запись, Участник). Данные выглядят примерно так:
ID FirstName LastName DOB Account_Type Status Participant_Code Participant_Type
1 John Smith 5/5/1960 Gold Active 002 A
2 Hello World 4/9/1975 Platinum Inactive 002 A
.
.
.
600
Мне необходимо:
INSERT INTO Membership (ID, FirstName, LastName, DOB)
VALUES (1, 'John', 'Smith', '5/5/1960')
INSERT INTO Membership (ID, FirstName, LastName, DOB)
VALUES (2, 'Hello", 'World", '4/9/1975')
INSERT INTO Account(ID, Type, Effective_Date, Status)
VALUES (1, 'Gold', GetDate(), 'Active')
INSERT INTO Account(ID, Type, Effective_Date, Status)
VALUES (2, 'Platinum', GetDate(), 'Inactive')
INSERT INTO Participant(ID, Code, Type)
VALUES (1, 002, 'A')
INSERT INTO Participant(ID, Code, Type)
VALUES (2, 002, 'A')
Я не хочу повторять оператор 600 * 3 INSERT
. Каковы мои варианты?
Редактировать: извините, забыл упомянуть - массовая вставка невозможна из-за ограничений на моей рабочей станции.
Обновление: Донал предоставил мне хорошую отправную точку. Несмотря на то, что мне по-прежнему нужно более 600 операторов INSERT, с помощью Донала, по крайней мере, мне не нужно писать операторы самому. Кроме того, я изменил свой код, чтобы сделать его более эффективным:
Во-первых, я CREATE and INSERT
эти 600 строк во временную таблицу.
CREATE TABLE #temp_table (
ID INT,
FirstName VARCHAR(50),
LastName VARCHAR(50),
DOB DATE,
Account_Type VARCHAR(10),
Status VARCHAR(8),
Participant_Code CHAR(3),
Participant_Type CHAR(1)
)
INSERT INTO #temp_table (1, 'John', 'Smith, '5/5/1960', 'Gold', 'Active', '002', 'A')
.
.
so on
Затем для конкретной таблицы я могу просто использовать оператор INSERT INTO... SELECT
INSERT INTO Membership
SELECT ID, FirstName, LastName, DOB FROM #temp_table
INSERT INTO Account
SELECT ID, Account_Type, Status, GetDate() FROM #temp_table
INSERT INTO Participant
SELECT ID, Participant_Code, participant_type FROM #temp_table
VALUES
, а мне все равно нужно ввести данные 600*3 раза - person C.J.   schedule 12.08.2014Insert into tableName (field names) values
. данные еще должны быть перечислены; иначе как бы его вставили... - person xQbert   schedule 12.08.2014