【发布时间】:2014-10-08 01:57:29
【问题描述】:
存储过程正在使用以下查询来获取结果并将结果返回给客户端。
select
@Lid, *
from
CurrentProductSet cps
where
cps.State = @state
and cps.ProductName in (select gbb.ProductName
from HMCGoodBetterBest gbb
where gbb.HMC_Hospital = @hospital
and gbb.HMC_Extras = @extra);
您能否指导我如何将这些结果存储在另一个表中以供进一步使用,然后再将它们返回给客户。只是不想两次获取数据或使用表变量。我创建了另一个表'Temp_CurrentProductSet'。
编辑:
我尝试使用into 子句尝试下面的代码,但出现此错误:
对象或列名丢失或为空。对于 SELECT INTO 语句,验证每一列都有一个名称。对于其他语句,请查找空别名。不允许使用定义为 "" 或 [] 的别名。将别名更改为有效名称。
代码:
select
@Lid, *
into
Temp_CurrentProductSet
from
CurrentProductSet cps
where
cps.State = @state
and cps.ProductName in (select gbb.ProductName
from HMCGoodBetterBest gbb
where gbb.HMC_Hospital = @hospital
and gbb.HMC_Extras = @extra);
【问题讨论】:
-
您上面的查询将结果存储在一个表中,
Temp_CurrentProductSet。SELECT INTO就是这样做的。你到底想完成什么? -
如果为此使用表,请注意并发性等。除非您添加代码,否则之后数据不会从表中删除,除非您做一些非常棘手的事情,否则两个不同的连接人员会运行相同的存储过程将仅使用相同的表,从而提供意想不到的结果。我建议您提供更多背景信息,说明您为什么要这样做。是否存在性能问题?
-
在插入中使用输出子句来显示结果
标签: .net sql-server sql-server-2008 stored-procedures clrstoredprocedure