CREATE VIEW之前的USE声明

时间:2012-11-22 19:10:01

标签: sql sql-server-2008

事实:我不擅长SQL,经过一些研究后我无法弄明白。我正在阅读有关利用视图的章节,但无法使此查询起作用:

USE [jm0235242]
CREATE VIEW InvoiceBasic 
AS
SELECT VendorName, InvoiceNumber, InvoiceTotal
FROM Vendors JOIN Invoices ON Vendors.VendorID = Invoices.VendorID

我的USE声明存在问题:

  

'CREATE VIEW'必须是查询批次中的第一个语句“。

我的问题是,如果我不能使用我的USE语句,我应该如何指定应该查看哪个数据库。感谢您的帮助和感恩节快乐!

2 个答案:

答案 0 :(得分:6)

您需要确保CREATE VIEW是SQL批处理中的第一个语句 - 正如错误清楚地解释的那样。所以使用这个:

USE [jm0235242]
GO      --  put that "GO" separator here! 

CREATE VIEW InvoiceBasic 
AS
SELECT VendorName, InvoiceNumber, InvoiceTotal
FROM Vendors JOIN Invoices ON Vendors.VendorID = Invoices.VendorID

在SQL Server Management Studio中运行时,GO关键字结束批处理并执行它 - 而CREATE VIEW现在是第二批中的第一个语句,它很开心且有效,太

更新:问题为什么确切地说CREATE VIEW(以及ALTER VIEW就此而言)必须是批次的第一个陈述我不知道 - 我从未听过任何令人信服的解释。也许微软或与团队关系密切的人都知道这一点,可以为我们所有人解释一下吗? : - )

答案 1 :(得分:1)

需要“GO”.....回答我自己的问题!可以有人告诉我为什么我需要这个,因为我想理解我为什么需要它。