【发布时间】:2013-06-14 13:31:17
【问题描述】:
如何在括号内使用#temp?
或者如何在括号内使用表变量?
显然,真正的查询要复杂得多。
失败:
IF OBJECT_ID(N'tempdb..#Temp', N'U') IS NOT NULL DROP TABLE #Temp
CREATE TABLE #Temp (sID int NOT NULL);
select count(*)
from
(
insert into #Temp
select top 10 sID from [docSVsys]
select * from #temp
) as [count]
IF OBJECT_ID(N'tempdb..#Temp', N'U') IS NOT NULL DROP TABLE #Temp
失败:
select count(*)
from
(
IF OBJECT_ID(N'tempdb..#Temp', N'U') IS NOT NULL DROP TABLE #Temp
CREATE TABLE #Temp (sID int NOT NULL);
insert into #Temp
select top 10 sID from [docSVsys]
select * from #temp
) as [count]
IF OBJECT_ID(N'tempdb..#Temp', N'U') IS NOT NULL DROP TABLE #Temp
作品:
但我需要在括号内使用#temp
IF OBJECT_ID(N'tempdb..#Temp', N'U') IS NOT NULL DROP TABLE #Temp
CREATE TABLE #Temp (sID int NOT NULL);
insert into #Temp
select top 10 sID from [docSVsys]
select * from #temp
IF OBJECT_ID(N'tempdb..#Temp', N'U') IS NOT NULL DROP TABLE #Temp
【问题讨论】:
-
如果您只需要知道
inserted 有多少行,@@ROWCOUNT有什么问题? -
@Damien_The_Unbeliever 来自问题:“显然,真正的查询要复杂得多。”
-
刚刚注意到您的“真正的查询要复杂得多”,这可能会使我之前的评论偏离目标。但问题真的是,你想做什么? “将 X 放在括号中”从来都不是要求——您还没有告诉我们您的实际要求是什么。您告诉我们的只是您对问题的感知解决方案是“将 X 放在括号中”。
-
您可能需要检查What is the XY Problem?。
-
上述问题的答案是。 “做不到”。
标签: sql-server-2008 tsql temp-tables