2013-08-19 110 views
0

有一個用戶用來捕獲數據的應用程序。對於每個記錄,創建一個uniqueidentifier並將其添加到行(GUID)。將Excel數據批量導入sql和GUID問題

需要通過傳遞應用程序進行批量上傳。數據存儲在excel中。我使用Microsoft.Jet.OLEDB.4.0從Excel中選擇數據並執行C#SqlBulkCopy插入值。

問題是將rowduid列設置爲每個記錄的新GUID。我怎樣才能做到這一點。我想通過做一些像「Select *,newguid作爲ID FROM [sheet1 $]」,但我不知道是否有這樣的查詢在Excel中。請幫忙。謝謝。

+0

您可以使用Microsoft Query此 – Dave

+0

無法你只需將列設置爲缺省值'NEWID()'? 「ALTER TABLE [yourTable] ADD CONSTRAINT \t DF_Whatever DEFAULT newid()FOR [theColumn]」 – Corak

+0

@Corak要求是不改變表格。我知道我知道。 –

回答

0

(由於NEWID的()無法創建一個默認值),你可以做一個插入更新後,如...

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