2010-04-30 56 views
0
Procedure USP_UploadTraining 
@filePath varchar(100) 
AS 

BEGIN 

Insert into Training_TRNS (EmpName,EmpJobFunction,EmpRegion,SpeCourse_ID,status,DueDate) 
sCreate elect F2+' '+F3 as Name,F4 as JobFunction, F6 as EVPRegion, F7 as CourseTitle,F8 as Status, convert(varchar,F9,101) as DateAcq 
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
'Excel 8.0;Database='@filePath'', 'SELECT * FROM [Sheet1$]') 
where f2!='First Name' 

END 


it's give syntax error can anyone this modify. 

回答

0

你需要使用Sp_ExecuteSql对于这一点,因为你不得不更换@filePath当您运行查询

尝试以下查询

Create Procedure USP_UploadTraining 
@filePath varchar(100) AS 

BEGIN 
DECLARE @ParmDefinition nvarchar(500); 
SET @ParmDefinition = N'@filePath1 varchar(100)'; 
DECLARE @SQLString nvarchar(max); 

SET @SQLString='Insert into Training_TRNS (EmpName,EmpJobFunction,EmpRegion,SpeCourse_ID,status,DueDate) 
select F2+'' ''+F3 as Name,F4 as JobFunction, F6 as EVPRegion, F7 as CourseTitle,F8 as Status, convert(varchar,F9,101) as DateAcq 
FROM OPENROWSET(''Microsoft.Jet.OLEDB.4.0'', 
''Excel 8.0;Database= @filePath'', ''SELECT * FROM [Sheet1$]'') 
where f2!=''First Name''' 


EXECUTE sp_executesql 
    @SQLString 
    ,@ParmDefinition 
    ,@filePath1 = @filePath 
    ; 


END 
+0

过程需要参数“@statement”类型为'ntext/nchar/nvarchar'。 通过错误 – 2010-04-30 10:13:13

+0

在我的末尾没有语法错误 – 2010-04-30 10:43:56

+0

感谢您的帮助和您的代码是正确的,但是当我执行此代码,然后通过此错误。 如果你可以解决这个问题,那么请尝试.....它非常紧迫。 我感谢您的帮助。 – 2010-04-30 10:45:36