Sql 在存储过程上传递参数时出现问题

Sql 在存储过程上传递参数时出现问题,sql,sql-server,excel,stored-procedures,Sql,Sql Server,Excel,Stored Procedures,我已经创建了一个没有任何问题的程序。在创建过程之前,我已经进行了测试,但是当我尝试执行过程时,我只有在第一个参数中遇到了问题 SQL SERVER 2008在“Mundus”中显示错误语法 ProcAvancementTotalbyEtab 'Erasmus Mundus','C:\Users\AA\Desktop\Table1.xlsx' 在我尝试这样做之后: ProcAvancementTotalbyEtab N'Erasmus Mundus','C:\Users\AA\Desktop\T

我已经创建了一个没有任何问题的程序。在创建过程之前,我已经进行了测试,但是当我尝试执行过程时,我只有在第一个参数中遇到了问题

SQL SERVER 2008在“Mundus”中显示错误语法

ProcAvancementTotalbyEtab 'Erasmus Mundus','C:\Users\AA\Desktop\Table1.xlsx'
在我尝试这样做之后:

ProcAvancementTotalbyEtab N'Erasmus Mundus','C:\Users\AA\Desktop\Table1.xlsx'
这是我的存储过程:

alter proc ProcAvancementbyEtab
(

@nameEtabb  nvarchar(50),
@FilePath nvarchar(60)
)

as
begin
 EXEC
 (
 '
 SET NOCOUNT OFF;
 insert into Avancement(nameEtab)
SELECT distinct T.[EFP]
From OPENROWSET(''MICROSOFT.ACE.OLEDB.12.0'',
''Excel 12.0;Database='+@FilePath+''',
''SELECT *
 FROM [Sheet1$]'') T

  where T.[EFP] is not null  and T.[Avancement] is not null
 and 
not exists (select * from Avancement where 
Avancement.nameEtab=T.[EFP])
and T.[EFP]='+@nameEtabb+'
 ')
end
当我评论这句话时 和T[EFP]='+@nameEtabb+' 它工作正常,所以我的问题在这里

and T.[EFP]='+@nameEtabb+'

当我在没有存储过程的情况下进行测试时,它也能正常工作。

我猜
name
存储为字符串。您需要一对额外的引号:

and T.[EFP] = '''+@nameEtabb+'''