日期:2014-05-19  浏览次数:20426 次

sql导入表错误
我用SQL导入Execl表:
CREATE   PROCEDURE   pro_import  
@tabName1   nchar(50),  
@tabName2   nchar(50)
AS
IF   EXISTS(SELECT   name  
    FROM     sysobjects  
    WHERE     name   =   N 'temPeishong '  
    AND     type   =   'U ')
        DROP   TABLE   temPeishong     --删除原表
GO
SELECT   identity(int   ,1,1)   as   SN,单位名称,货号,品名,规格,数量,单位,零售总额,开单日期
into   temPeishong
FROM   OpenDataSource(   'Microsoft.Jet.OLEDB.4.0 ',
'Data   Source=@tabName1;User   ID=Admin;Password=;Extended   properties=Excel   5.0 ')...[Sheet1$]
-----------------------
IF   EXISTS(SELECT   name  
    FROM     sysobjects  
    WHERE     name   =   N 'temPeishong '  
    AND     type   =   'U ')
        DROP   TABLE   temPeishong     --删除原表
GO
--   ============================================
--销售出库明细表批发查询表(temPifa)
SELECT   identity(int   ,1,1)   as   SN,单位名称,货号,品名,规格,数量,单位,未结算价税,开单日期
into   temPifa
FROM   OpenDataSource(   'Microsoft.Jet.OLEDB.4.0 ',
'Data   Source=@tabName2;User   ID=Admin;Password=;Extended   properties=Excel   5.0 ')...[Sheet1$]

GO

为什么会报这样的错呢?我执行时也没有打开这个Execl表
服务器:   消息   7314,级别   16,状态   1,行   1
OLE   DB   提供程序   'Microsoft.Jet.OLEDB.4.0 '   不包含表   'Sheet1$ '。该表可能不存在,或当前用户没有使用该表的权限。
服务器:   消息   7314,级别   16,状态   1,行   3
OLE   DB   提供程序   'Microsoft.Jet.OLEDB.4.0 '   不包含表   'Sheet1$ '。该表可能不存在,或当前用户没有使用该表的权限。




------解决方案--------------------
--try

CREATE PROCEDURE pro_import
@tabName1 nchar(50),
@tabName2 nchar(50)
AS
IF EXISTS(SELECT name
FROM sysobjects
WHERE name = N 'temPeishong '
AND type = 'U ')
DROP TABLE temPeishong --删除原表
--GO
exec( '
SELECT identity(int ,1,1) as SN,单位名称,货号,品名,规格,数量,单位,零售总额,开单日期
into temPeishong
FROM OpenDataSource( ' 'Microsoft.Jet.OLEDB.4.0 ' ',
' 'Data Source= '+@tabName1+ ';User ID=Admin;Password=;Extended properties=Excel 5.0 ' ')...[Sheet1$]
')
-----------------------
IF EXISTS(SELECT name
FROM sysobjects
WHERE name = N 'temPeishong '
AND type = 'U ')
DROP TABLE temPeishong --删除原表
--GO
-- ============================================
--销售出库明细表批发查询表(temPifa)
exec( '
SELECT identity(int ,1,1) as SN,单位名称,货号,品名,规格,数量,单位,未结算价税,开单日期
into temPifa
FROM OpenDataSource( ' 'Microsoft.Jet.OLEDB.4.0 ' ',
' 'Data Source= '+@tabName2+ ';User ID=Admin;Password=;Extended properties=Excel 5.0 ' ')...[Sheet1$]
')

GO
------解决方案--------------------
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0 ',
'Data Source=@tabName2;User ID=Admin;Password=;Extended properties=Excel 5.0 ')...[Sheet1$]
楼主的这一段问题出在变量@tabName2