我想使用Sql Server Studio导入excel 2007数据而不使用子总计和总计。我尝试直接导入,但也附带了小计和总计。这样做有直接的方法吗?
或者有替代方法进行此导入吗?
编辑1添加了Excel格式
我没有使用任何查询只使用sql向导导入。只是尝试在没有任何脚本的情况下完成它。
Excel格式
ProgramID | Name | Amount
20 | Adrian | 20
20 | Jack | 35
Sub Total 55 <== This I do not want to import
21 | Janet | 25
21 | Jill | 20
Sub Total 45 <== This I do not want to import
Total 100 <== This I do not want to import
答案 0 :(得分:0)
如果您使用的是OPENROWSET
,那么您只需在查询中添加where子句
SELECT *
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0 Xml;HDR=YES;Database=path\to\the.xlsx',
'SELECT * FROM [sheet_name$] WHERE NAME NOT LIKE ''%Total%'' AND NAME <> ''''')
如果您需要设置提供程序等,我建议您阅读this,其中还提供了从Excel导入数据的示例和替代方法。
使用任务 - &gt;导入数据;设置源和目标后,选择“编写查询...”然后使用与上面类似的查询,例如
SELECT * FROM `sheet_name$` WHERE `Name` NOT LIKE "%Total%" AND Name <> ""
由于某些原因,使用查询会混淆数据类型映射link。所以基于我添加的链接
<!-- VarChar Query Kludge -->
<dtm:DataTypeMapping >
<dtm:SourceDataType>
<dtm:DataTypeName>200</dtm:DataTypeName>
</dtm:SourceDataType>
<dtm:DestinationDataType>
<dtm:CharacterStringType>
<dtm:DataTypeName>DT_STR</dtm:DataTypeName>
<dtm:UseSourceLength/>
</dtm:CharacterStringType>
</dtm:DestinationDataType>
</dtm:DataTypeMapping>
<!-- NVarChar Query Kludge -->
<dtm:DataTypeMapping >
<dtm:SourceDataType>
<dtm:DataTypeName>202</dtm:DataTypeName>
</dtm:SourceDataType>
<dtm:DestinationDataType>
<dtm:CharacterStringType>
<dtm:DataTypeName>DT_WSTR</dtm:DataTypeName>
<dtm:UseSourceLength/>
</dtm:CharacterStringType>
</dtm:DestinationDataType>
</dtm:DataTypeMapping>
至AceToSSIS.xml
似乎“解决”了这个问题。