如何在一个SINGLE查询执行中创建视图并从中进行选择

时间:2010-09-01 10:32:12

标签: sql sql-server

我想创建一个视图,然后在一个查询中从中进行选择,请您告诉我下面的代码是如何可能的:

create view myView as
select [Order Details].Discount from [Order Details]
select * from myView

如果我想运行代码,首先我必须选择与创建视图相关的那部分,然后我必须选择与从该视图中选择相关的下一部分。我想知道这些查询在执行查询时一起运行的方式,创建视图然后执行select。

现在我想补充一点,如果我创建了那个视图,那么SQL会给我错误。我怎样才能解决这个问题??意味着该对象将只创建一次

2 个答案:

答案 0 :(得分:6)

在命令对你有用之后,只需写下Go

create view myView as
select [Order Details].Discount from [Order Details]
Go
select * from myView
Go

如果不需要视图,您也可以使用CTE

-- Define the CTE expression name and column list.
WITH Sales_CTE (Discount)
AS
-- Define the CTE query.
(
    select [Order Details].Discount from [Order Details]
)
-- Define the outer query referencing the CTE name.
SELECT *
FROM Sales_CTE

答案 1 :(得分:1)

您也可以使用exec来实现此目标

IF OBJECT_ID('dbo.myView','V') IS NULL
    EXEC ('create view dbo.myView as
    select [Order Details].Discount from [Order Details]
    ')

SELECT * FROM myView