请问怎样解决临时表中列名无效的问题? 邹建和朱二等请进! 急啊!

78hgdong 2005-05-03 05:47:09
一、 select * into #temp2 from OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="D:\Excel2005\2005.xls";User ID=Admin;Password=;Extended properties=Excel 5.0;Persist Security Info=false')...[sheet1$]
insert into BBLExcel(ProductNO,productName,specification,price,Quantity,QuantityBook,PL,PW,PH,PackRate,
unit,Volume,summoney) select 货号 as ProductNO,产品名称 as ProductName,产品尺寸 as specification,单价 as price,数量 as Quantity,件数 as QuantityBook,长 as PL,宽 as PW,高 as PH,包装率 as PackRate, 单位 as unit,体积M3 as Volume,总金额 as summoney from #temp2

二、各位好!
我用(select * from #temp2)查询可以正常显示所有数据,这样查询(select 名称,数量 from #temp2 )也能正常显示数据。
但是这样查询(select 货号,单价 from #temp2)时 //数据库类型:MS SQL SERVER
出现下面的错误:
服务器: 消息 207,级别 16,状态 3,行 2
列名 '货号' 无效。
服务器: 消息 207,级别 16,状态 1,行 2
列名 '单价' 无效。
想了好久,不知为什么???帮分析一下TKS!
...全文
432 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
78hgdong 2005-05-03
  • 打赏
  • 举报
回复
Source="D:\Excel2005\2005.xls",是一个固定的EXCEL文件名,现在我想用@EXN来做参数,从DELPHI应用程序里输入2005后,把2005传给@EXN参数(也就是说动态传进EXCEL文件名给@EXN)。
TKS!
78hgdong 2005-05-03
  • 打赏
  • 举报
回复
CREATE PROCEDURE PROCtoExcel
@EXN varchar(250)
AS
-- SET ANSI_NULLS ON
-- SET ANSI_WARNINGS ON
delete from BExcel
select * into #temp1 from OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="D:\Excel2005\2005.xls";User ID=Admin;Password=;Extended properties=Excel 5.0;Persist Security Info=false')...[sheet1$]

再问,Source="D:\Excel2005\2005.xls",如果用@EXN来做EXCEL文件参数名传进来。。如何写啊。Source="D:\Excel2005\???",
chiwei 2005-05-03
  • 打赏
  • 举报
回复
晕!中间有空格?
这个也太明显了吧
chiwei 2005-05-03
  • 打赏
  • 举报
回复
那肯定是你的字段'货号'和'单价'前面或后面有空格,仔细看看!
78hgdong 2005-05-03
  • 打赏
  • 举报
回复
谢谢上面两位的参与,不好意思啊,原来select 货 号 ,单 价 from #temp2 查询空格的问题引起,加个空格在“货 号 ,单 价”就行了,已经解决。
就等着邹建和朱二进来拿分了!
78hgdong 2005-05-03
  • 打赏
  • 举报
回复
TO: mschen(Visual【陈】)
按你这样查询也不行:select [货号],[单价] from #temp2
78hgdong 2005-05-03
  • 打赏
  • 举报
回复
select * from #temp2
的时候字段里有'货号'和'单价啊,可以正常显示有'货号'和'单价‘的数据/

select 货号,单价 from #temp2 这样查询就不行
chiwei 2005-05-03
  • 打赏
  • 举报
回复
select * from #temp2
的时候字段里有'货号'和'单价'吗?
mschen 2005-05-03
  • 打赏
  • 举报
回复
这样试试呢?

select [货号],[单价] from #temp2
78hgdong 2005-05-03
  • 打赏
  • 举报
回复
select * into #temp2 from OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="D:\Excel2005\2005.xls";User ID=Admin;Password=;Extended properties=Excel 5.0;Persist Security Info=false')...[sheet1$] //可以插入数据到临时表#temp2了,

1. select * from #temp2 和 select 名称,数量 from #temp2 //执行查询正常,可以显示数据

2. select 货号,单价 from #temp2 //当执行这个查询就不正常,出现了下面的错误:
服务器: 消息 207,级别 16,状态 3,行 2
列名 '货号' 无效。
服务器: 消息 207,级别 16,状态 1,行 2
列名 '单价' 无效。

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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