Получих набор от данни в 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, с помощта на Donal, поне не трябва да пиша израза сам. Освен това промених кода си, за да го направя по-ефективен:
Първо, аз 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