我试着提出一个观点。到目前为止,我写了这个:
with ExpAndCheapMedicine(MostMoney, MinMoney) as
(
select max(unitprice), min(unitprice)
from Medicine
)
,
findmostexpensive(nameOfExpensive) as
(
select tradename
from Medicine, ExpAndCheapMedicine
where UnitPrice = MostMoney
)
,
findCheapest(nameOfCheapest) as
(
select tradename
from Medicine, ExpAndCheapMedicine
where UnitPrice = MinMoney
)
CREATE VIEW showing
as
select tradename, unitprice, GenericFlag
from Medicine;
不幸的是,我在包含CREATE VIEW showing
的行上得到一个错误
“CREATE VIEW必须是批处理中的唯一语句”
我该怎么补救?!
4条答案
按热度按时间uyhoqukh1#
正如错误所述,
CREATE VIEW
语句需要是查询批处理中的唯一语句。在此方案中,您有两个选项,具体取决于您要实现的功能:
1.将
CREATE VIEW
查询放在开头1.在CTE之后和
CREATE VIEW
查询之前使用GO
--选项2
9njqaruj2#
当我试图在同一条语句中创建几个视图时,我遇到了这个问题,对我来说,使用动态SQL效果很好。
owfi6suc3#
您还可以用途:
很容易理解和避免动态SQL(即使动态SQL也能工作)
blpfk2vs4#
只需在创建视图之前和之后使用GO即可解决问题