2013-08-19 5 views
0

Существует приложение, которое пользователи используют для сбора данных. Для каждой записи создается уникальный идентификатор и добавляется в строку (GUID).Массовый импорт данных excel в sql и ошибку GUID

Существует требование массовой загрузки путем передачи приложения. Данные хранятся в Excel. Я использую Microsoft.Jet.OLEDB.4.0 для выбора данных из Excel и выполнения C# SqlBulkCopy tyo вставить значения.

Проблема создает столбец rowduid для нового GUID для каждой записи. Как я могу это достичь. Я подумал, сделав что-то вроде «Select *, newguid как ID FROM [sheet1 $]», но я не знаю, есть ли такой запрос в excel. Пожалуйста помоги. Благодарю.

+0

Вы можете использовать Microsoft Query для этого – Dave

+0

Не может вы просто установите для столбца значение по умолчанию 'NEWID()'? "ALTER TABLE [yourTable] ADD CONSTRAINT \t DF_Whatever DEFAULT newid() ДЛЯ [theColumn]" – Corak

+0

@Corak Требование не изменять таблицу. Знаю, знаю. –

ответ

0

(Поскольку значение по умолчанию NEWID() не может быть создан) Вы можете сделать после вставки UPDATE, такие как ...

CREATE TABLE ##GUID(
    ID INT, 
    ValueOne VARCHAR(1), 
    NewGuid UNIQUEIDENTIFIER 
) 

INSERT INTO ##GUID (ID,ValueOne) 
VALUES (1,'A') 
    , (2,'B') 
    , (3,'C') 

SELECT * 
FROM ##GUID 

-- after the INSERT, update the table with the GUID 
UPDATE ##GUID 
SET NewGuid = NEWID() 

SELECT * 
FROM ##GUID 

DROP TABLE ##GUID 
Смежные вопросы