从SQL Server中的临时表创建临时视图

Thu*_*der 23 sql-server view temporary

我有一个临时表,我想在这个临时表上创建一个临时视图.

可能吗?

在下面的例子中,我希望#Top10Records成为一个视图,而不是一个表,以便我得到

select * into #Top10Records from (select top 10 * from #MytempTable)
Run Code Online (Sandbox Code Playgroud)

Dar*_*mko 45

您可以使用Common Table表达式来执行此操作:

WITH Top10Records  AS 
( 
 select top 10 * from #MytempTable
) 
SELECT * FROM Top10Records 
GO
Run Code Online (Sandbox Code Playgroud)

  • 当然,这仅适用于CTE之后的单个声明.我们不知道OP是否打算在多个语句中使用临时视图. (9认同)
  • +1可能是最优雅的解决方法-良好的响应 (2认同)
  • 由于#MytempTable将始终更改,因此打算多次使用 (2认同)

mar*_*c_s 9

不幸的是,SQL Server不支持这个:

消息4103,级别15,状态1,行3
"#someView":不允许临时视图.
消息4508,级别16,状态1,行6
视图或函数不允许临时表.以"#"开头的表名称表示临时表.