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

How to concatenate a string with variable in my case

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

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_executesql

此限制已在Feedback Forum

中反馈