Sql 在我的例子中,如何将字符串与变量连接起来

Sql 在我的例子中,如何将字符串与变量连接起来,sql,sql-server,filepath,Sql,Sql Server,Filepath,我正在尝试连接文件路径和文件夹名称变量,如下所示 Declare @FileName int SET @FileName = 1 insert into OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 8.0;Database=D:\ExportData\'+ CAST(@FileName AS varchar(10))+'.xlsx;', //Incorrect syntax near + expecting ',' or ';' 'SEL

我正在尝试连接文件路径和文件夹名称变量,如下所示

Declare @FileName int

SET @FileName = 1

insert into OPENROWSET('Microsoft.ACE.OLEDB.12.0',  
'Excel 8.0;Database=D:\ExportData\'+ CAST(@FileName AS varchar(10))+'.xlsx;',  //Incorrect syntax near + expecting ',' or ';'
'SELECT top 100 ItemNo,Name FROM [Sheet1$]') select top 100 ItemNo,Name from product
通常情况下,当我使用+运算符连接时,我不会像上面定义的那样得到任何错误。只有在这种情况下,我得到一个错误

OPENROWSET()
不支持表达式或变量作为参数的输入,它必须是字符串文字

一种解决方法是动态生成整个
OPENROWSET
查询,使用
exec()
sp\u executesql


此限制已在

OPENROWSET()中反馈。
不支持表达式或变量作为参数的输入,它必须是字符串文字。一种解决方法是动态生成整个
OPENROWSET
查询,使用
exec()
sp\u executesql
执行动态查询如果这样做肯定会很好!反馈是@Squirrel,谢谢你找到这个。我投了赞成票up@Squirrel是否值得创建一个答案,说明您的第一条评论,并建议使用该链接投票?