首页 > 解决方案 > SQL 为 EXEC 存储过程提供另一个带有撇号参数的存储过程

问题描述

我正在按照本指南创建热图。

http://sqljason.com/2012/03/heat-maps-for-ssrs-using-map-control.html

其中一个步骤是将存储过程提供给另一个生成我的数据的存储过程。

我的看起来像这样:

exec dbo.CreateHeatMap 20, 25, 'exec ZZ_N_FinalEcomDashboardCustomerRFMUnPivot 03, 001, 1/1/2014, 1/1/2020'

问题是那些日期。起初,我将它们包裹在像 '1/1/2014' 这样的撇号中,但这似乎打破了整条线。

我已经尝试了撇号、声明和设置变量、使用连接或加号以及其他所有方法的每种组合,但我似乎无法让它工作。

我在带有参数的 SSRS 报告中构建这一行。所以我的终极目标是这样的

exec dbo.CreateHeatMap 20, 25, 'exec ZZ_N_FinalEcomDashboardCustomerRFMUnPivot @Company, @Division, @Date, @date2' 

这些是我报告中的参数。我正在使用这条线在我的报告中创建一个数据集。

什么是正确的语法?

标签: sqlsql-serverexecsp-executesql

解决方案


大概是这样的:

exec dbo.CreateHeatMap 20, 25, 'exec ZZ_N_FinalEcomDashboardCustomerRFMUnPivot ''03'', ''001'', ''1/1/2014'', ''1/1/2020'''

如果强制保留前导零,则前导零“数字”也需要作为字符串引用

不禁认为这里有一个更深层次的缺陷.. 但是如果不查看 CreateHeatMap 代码,我不能肯定地说。不过,将 sql 传递给进程似乎是黑客灾难的秘诀


推荐阅读