0

有一个用户用来捕获数据的应用程序。对于每条记录,都会创建一个唯一标识符并将其添加到一行 (GUID)。

需要通过应用程序进行批量上传。数据存储在excel中。我正在使用 Microsoft.Jet.OLEDB.4.0 从 Excel 中选择数据并使用 C# SqlBulkCopy 插入值。

问题是将 rowduid 列设置为每条记录的新 GUID。我怎样才能做到这一点。我想通过执行类似“Select *, newguid as ID FROM [sheet1$]”之类的操作,但我不知道 excel 中是否有这样的查询。请帮忙。谢谢。

4

1 回答 1

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
于 2013-08-19T17:36:31.993 回答