求助调用导入导出excel存储过程出错

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[spExcelOutIn]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)  
  drop procedure [dbo].[spExcelOutIn]  
  GO  
CREATE PROCEDURE spExcelOutIn
@strOptions varchar(200) = NULL,
@strWhere nvarchar(4000) = NULL,--导入/导出查询条件(包括Where 关键字)
@strExcelPath nvarchar(1000) = NULL,--Excel的绝对路径
@strExcelSheetName nvarchar(50) = NULL,--Excel里要导入的工作表名称 如Sheet2,注意,后面不要加上$
@strExcelFiled nvarchar(1000) = NULL,--Excel工作表的字段
@strSqlTableName nvarchar(100) = NULL,--Sql数据库导入/导出表名
@strSqlFiled nvarchar(1000) = NULL--Sql表的字段
AS
DECLARE @strSql nvarchar(4000)
IF OBJECT_ID('tempdb..##Temp') IS NOT NULL DROP TABLE ##Temp
IF @strOptions='In' AND NOT @strExcelPath IS NULL BEGIN
SET @strExcelPath = '''Microsoft.Jet.OLEDB.4.0'',''Data Source="' + @strExcelPath + '";User ID=Admin;Password=;Extended properties=Excel 5.0'''
--将数据存放到临时表(一)
SET @strSql =
'SELECT ' + @strExcelFiled +
' INTO ##Temp
FROM 
OpenDataSource('+ @strExcelPath +')'+ @strExcelSheetName +'$ '
+@strWhere
--PRINT(@strSql)
EXEC(@strSql) 
--将数据从临时表导入到sql数据库表(二,分两步可以做更多的处理)
SET @strSql = 'INSERT INTO ' + @strSqlTableName + '('+ @strSqlFiled +') SELECT * FROM ##Temp'
--PRINT(@strSql)
EXEC(@strSql) 
--SELECT * FROM ##Temp
DROP TABLE ##Temp
END
IF @strOptions='Out' AND NOT @strExcelPath IS NULL BEGIN
SET @strExcelPath = ''
--导成类似(不是真正的Excel,是文本格式)Excel的文件,这里是固定的,真正用时需要修改相关参数
--EXEC master..xp_cmdshell 'bcp "SELECT * FROM wy_福州分公司.dbo.TExcelOutIn" queryout C:\test.xls -c -S"(local)" -U"sa" -P"123"'
END
GO
请教调用语句错在哪里?

spExcelOutIn @strOptions='in',@strWhere='',@strExcelPath='D:/ExcelFiles/tony.xls',@strExcelSheetName='sheet1',@strExcelFiled='a,b,c,d',@strSqlTableName='tony',@strSqlFiled='a,b,c,d'

服务器: 消息 170,级别 15,状态 1,行 3
第 3 行: 'sheet1$' 附近有语法错误。
服务器: 消息 208,级别 16,状态 1,行 1
对象名 '##Temp' 无效。
服务器: 消息 3701,级别 11,状态 5,过程 spExcelOutIn,行 28
无法 除去 表 '##Temp',因为它在系统目录中不存在。

作者: byac   发布时间: 2011-06-16

这个就算存储过程通了,也还得弄个什么设置,很麻烦,不如你直接用 MSSQL自带的管理器去实现!

作者: fox123871   发布时间: 2011-06-16

作者: aspwebchh   发布时间: 2011-06-16