将excel文件插入sql(选定数据)

将excel文件插入sql(选定数据),sql,sql-server,Sql,Sql Server,我有一个excel文件,当前看起来像是要将其导入数据库的附加图像 当前我的查询如下所示 INSERT INTO [inSharePoint] (processingDate, [url], [sharepointName], [ownerEmail], [secondaryOwnerEmail], [lastUpdateDate], [totalQuotaInMB], [totalStorageInMB], [storageUsedInPercentage], [lockStatus], [si

我有一个excel文件,当前看起来像是要将其导入数据库的附加图像

当前我的查询如下所示

INSERT INTO [inSharePoint] (processingDate, [url], [sharepointName], [ownerEmail], [secondaryOwnerEmail], [lastUpdateDate], [totalQuotaInMB], [totalStorageInMB], [storageUsedInPercentage], [lockStatus], [siteType], [spVersion])
    VALUES ('{processingDate}', @url, @sharepointName, @ownerEmail, @secondaryOwnerEmail, @lastUpdateDate, @totalQuotaInMB, @totalStorageInMB, @storageUsedInPercentage, @lockStatus, @siteType, @spVersion)
但是,如果我想插入相同的文件,但唯一的区别是我的列[LockStatus],我只希望状态nolock为insert,而不是其他状态No readonly和noaccess,该怎么办


我对sql真的很陌生,希望有人能解释一下谢谢你

正如@Daniel Marcus提到的,如果你有SSIS sql Server集成服务,你可以很容易地使用它

在您当前的解决方案中,看起来您正在逐行处理Excel数据,在这种情况下,您需要使用IF语句检查NodeJS代码中的数据,并且仅在LockStatus=nolock时执行insert


或者,您可以使用mongo查询仅提取LockStatus=nolock的数据,并将该数据发送到SQL Server。不过,我不熟悉查询mongo,所以不确定它会是什么样子。

您可以使用VBA来实现这一点

Sub InsertARecord()
Dim cnt As ADODB.Connection
Dim rst As ADODB.Recordset
Dim stCon As String, stSQL As String
Set cnt = New ADODB.Connection
Set rst = New ADODB.Recordset

stCon = "Provider=MSDASQL.1;Persist Security Info=False;Data Source=JOEY"
cnt.ConnectionString = stCon
stSQL = "INSERT INTO MyTable (FieldNames)"
stSQL = stSQL & "VALUES (ActualValues)"
stSQL = stSQL & "WHERE lockStatus = 'nolock'"

cnt.Open
rst.Open stSQL, cnt, adOpenStatic, adLockReadOnly, adCmdText

If CBool(rst.State And adStateOpen) = True Then rst.Close
Set rst = Nothing
If CBool(cnt.State And adStateOpen) = True Then cnt.Close
Set cnt = Nothing

End Sub
另外,请参见此URL


您想让所有列都显示“nolock”还是只想插入LockStatus为“nolock”的行?您用什么读取Excel文件?不,我不想转换它。我想用nolock status@dbajtrI插入行LockStatus,并使用mongoDB映射文件。司机打电话给xlsxWriter@squillmanOk。您是如何将数据从mongo获取到SQL Server的?好的,我明白了,目前正在寻找SSI。非常感谢你的提示!我会试试的,斯奎尔曼森好极了!如果您使用的是SQL Server Express或LocalDB,则无法访问SSI。您至少需要SQL Server标准