SQL导入EXCEL,当某列出现混合类型时的问题

SQL导入EXCEL,当某列出现混合数据类型时,直接导入数据将会使数据被强制转换(如转换为科学计数法等)

解决此问题可以将EXCEL另存为.csv格式的文件,采用BULK INSERT 导入数据

USE [Usp30_湖北联通]
GO
IF OBJECT_ID(
'tempdb..#temp') IS NOT NULL
DROP TABLE #temp
CREATE TABLE #temp
(
R1 VARCHAR(
50),
R2 VARCHAR(
50),
R3 VARCHAR(
50),
R4 VARCHAR(
50),
R5 VARCHAR(
50)

)
--select *,CONVERT(NVARCHAR(50),音乐盒编号) AS t1 into #temp from
--
--OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
--
--,'Excel 5.0;HDR=YES;IMEX=1; --此处将IMEX设置为1,强制文本类型也没有作用
--DATABASE=d:temp\王菲抢票活动资源订购情况.xls',sheet1$)

--下面方法可以解决此问题
BULK INSERT #temp FROM
'd:\temp\王菲抢票活动资源订购情况.csv'
WITH (CHECK_CONSTRAINTS,CODEPAGE
='RAW',DATAFILETYPE='char',FIELDTERMINATOR=',',ROWTERMINATOR='0x0a',FIRSTROW=1,KEEPNULLS)


select
* from #temp
posted @ 2011-08-15 17:18  子夜一梦  阅读(893)  评论(0)    收藏  举报