我一直试图从存储过程(GetData)中将数据插入到临时表中,然后进行过滤。但不能得到这个工作,并得到一个错误信息无法将数据从存储过程插入到临时表中
一个INSERT EXEC语句不能嵌套。
存储过程(GetData)有一个存储过程在其中调用。
我试图创建一个存储过程脚本的功能,但我无法做到这一点,得到一个错误信息
无效使用了副作用的运营商“INSERT EXEC”的 函数中。
因此一直在试图找到一个解决方案,我可以得到这个工作。其他存储过程不能像程序中的几乎所有地方那样进行修改。
顺便说一句,我不会能够共享存储过程脚本。
DECLARE @FromDate datetime
DECLARE @ToDate datetime
DECLARE @List VARCHAR(Max)
DECLARE @Filter VARCHAR(Max)
SET @FromDate = '1 July 2016 ';
SET @ToDate = '30 December 2017';
SET @List = '1,2,3,4';
SET @Filter= 'Manager, Staff'
DECLARE @Temp_Stage_Measurement TABLE
(
ClientID int,
Status varchar(255),
Declining varchar(255), Eligible varchar(255),
NotEligible varchar(255), Reapplying varchar(255)
)
INSERT @Temp_Measurement EXEC GetData @FromDate,@ToDate, @List
--Get a error message "An INSERT EXEC statement cannot be nested." as GetData has another
--INSERT EXEC which inturn calls other store procedure which cannot be modified as used in almost many places in the program
SELECT * FROM @Temp_Measurement
WHERE @Filter is null or Reason IN (@Filter)
即使试图替换下面的语句: INSERT @Temp_Measurement EXEC GetData @FromDate,@ToDate, @List
随着SELECT * INTO #Temp_Measurement EXEC GetData @FromDate,@ToDate, @List
然后让下面的错误信息
对象或列名不存在或为空。对于SELECT INTO 语句,请确认每列都有一个名称。对于其他语句,请查看 以获取空白别名。别名定义为“”或[]是不允许的。 将别名更改为有效的名称。