我认为CTE非常适合我的存储过程,直到我发现它们只能在一个查询中引用(即紧跟CTE后的查询)。他们现在看起来毫无意义。
我正在寻找一种方法来执行查询,将结果集存储在内存中(不像临时表或表变量那样存储在磁盘上),然后在多个SELECT / INSERT / UPDATE语句中的存储过程中引用它。就像临时视图或具有更长范围的CTE一样。但是在SQL Server中似乎根本不存在!有没有人有办法解决吗?这不代表CTE功能似乎是短视的吗?
答案 0 :(得分:0)
我同意这些意见。我也不确切知道如何完成以下工作,但我认为它会起作用。话虽如此:让您的查询生成XML输出,将该输出存储在XML变量中,然后使用xquery引用并从中提取数据以用于其余过程。 (但同样,我完全不确定你能写一个“SELECT @XML = ...”查询。也许是OPENXML,或类似的东西?)