SQL ServerdynamicSQL“报价地狱”与OPENDATASOURCE
我想build立一个参数化的SQL查询,从Excel文件中检索数据。
Excel文件的名称每年都会更改。
以下是在T-SQL(在SQL Server 2008 R2 Express上)运行良好的查询:
SELECT * INTO MobilityData FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0', 'Data Source=\\UNCPath\Annual_Mobility_Update\DAM2013-3.xls;Extended Properties=Excel 8.0')... [Sheet1$]
走
(UNCpath是一个networkingUNCpath,工作正常)
string“DAM2013-3.xls”将同比变化。 我想要做的就是执行一个参数化的存储过程,并在飞行中build立Dyanamic SQL …
像这样的东西:
SELECT @sQry='SELECT * INTO MobilityData FROM OPENDATASOURCE(''''Microsoft.Jet.OLEDB.4.0', 'Data Source=\\sgstore\Shared\operations\DM\Annual_Mobility_Update\''' + @XLFileSource + ';Extended Properties=Excel 8.0'')...[Sheet1$]'
但我似乎在地狱里,不能得到它编译。
我该怎么办才能解决这个问题?
我会很感激任何提示,钓鱼竿,甚至整条鱼等
感谢Philip
这里是固定的代码。 希望这个帮助
SELECT @sQry='SELECT * INTO MobilityData FROM OPENDATASOURCE(''''Microsoft.Jet.OLEDB.4.0'',''Data Source=\\sgstore\Shared\operations\DM\Annual_Mobility_Update\''' + @XLFileSource + ';Extended Properties=Excel 8.0'')...[Sheet1$]'