select into 创建临时表时字段类型如何设置?

土家街 2016-06-13 05:01:20
将txt文档导入临时数据表时,数据类型不对
sql语句如下
select * into linshi from OpenRowset('MSDASQL', 'Driver={Microsoft Text Driver (*.txt; *.csv)};DefaultDir=F:\web\;','select sCode from 1.txt')


txt文档内容如下
Code
718508767785622848
070292485656760012
520725774560549516
581202053460622611

现在的问题是导入linshi表后,表的字段类型默认为float类型了,而我需要的是 varchar类型。请高手指教,感激不尽!

有人说把txt第一行数据改成字符,我试过了,不行,导入后表字段类型还是float,表第一行直接变成null了。
Code
dfgdsgdsfgsddfgdsgdf
070292485656760012
520725774560549516
581202053460622611


...全文
1116 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
小熊的耳朵 2019-06-14
  • 打赏
  • 举报
回复
select cast(0 as money) as moneyA,cast(0 as varchar(10)) as varcharA into #temp select * from #temp
Ginnnnnnnn 2016-06-13
  • 打赏
  • 举报
回复
用这个语句
select *  from 
	OPENROWSET(BULK  N'F:\Web\1.txt',FORMATFILE='F:\Web\Format.txt',FIRSTROW = 2) a
创建一个格式化文件format.txt,内容如下
12.0
1
1       SQLCHAR             0       50      "\r\n"   4     Math               Chinese_PRC_BIN2
土家街 2016-06-13
  • 打赏
  • 举报
回复
引用 2 楼 weblg 的回复:
引用 1 楼 KanzakiOrange 的回复:
那你先把临时表创建好,指定了数据类型再执行导入
如果先创建个表了 再用select into 就执行不了,
刚试过了,字段类型虽然是变成varchar类型了,可值都是转换后的 我先创建临时表linshi,字段设置为varchar类型,然后用 insert into 执行,可表的值都变成如下了, 5.46854e+017 6.0138e+017 5.46854e+017 5.46854e+017 1.94527e+017 类型对了,可值变了。
土家街 2016-06-13
  • 打赏
  • 举报
回复
引用 1 楼 KanzakiOrange 的回复:
那你先把临时表创建好,指定了数据类型再执行导入
如果先创建个表了 再用select into 就执行不了,
Ginnnnnnnn 2016-06-13
  • 打赏
  • 举报
回复
那你先把临时表创建好,指定了数据类型再执行导入

22,302

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧