星期一, 1月 13, 2014

SQL Server 2012 更新後造成無法導出 EXCEL


自從更新 VS 2012 的 SSIS 的套件之後,SSMS 突然就變成無法 Excel 匯出了,只要使用在匯出資料中使用 SQL 語法篩選資料就會出現 200 跟 202 這種奇怪的資料格式,然後就不能匯出了,Google 查看了一下就發現看起來像是更新造成的災難,

http://social.msdn.microsoft.com/Forums/sqlserver/en-US/97ff1f01-c02a-4c9a-b867-8eaecc464cfb/2012-sp1-no-longer-recognizes-common-data-types?forum=sqlintegrationservices

只好自己去修改一下 XML

修改一下這個檔案
C:\Program Files (x86)\Microsoft SQL Server\110\DTS\MappingFiles\MSSQLToSSIS10.XML

加入之後重新開啟 SSMS 就可以使用了
 <!-- varchar -->
 <dtm:DataTypeMapping >
  <dtm:SourceDataType>
   <dtm:DataTypeName>varchar</dtm:DataTypeName>
  </dtm:SourceDataType>
  <dtm:DestinationDataType>
   <dtm:CharacterStringType>
    <dtm:DataTypeName>DT_STR</dtm:DataTypeName>
    <dtm:UseSourceLength/>
   </dtm:CharacterStringType>
  </dtm:DestinationDataType>
 </dtm:DataTypeMapping>
 <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 -->
 <dtm:DataTypeMapping >
  <dtm:SourceDataType>
   <dtm:DataTypeName>nvarchar</dtm:DataTypeName>
  </dtm:SourceDataType>
  <dtm:DestinationDataType>
   <dtm:CharacterStringType>
    <dtm:DataTypeName>DT_WSTR</dtm:DataTypeName>
    <dtm:UseSourceLength/>
   </dtm:CharacterStringType>
  </dtm:DestinationDataType>
 </dtm:DataTypeMapping> 
 <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> 

沒有留言: