CREATE VIEW之前的USE声明

Jas*_*ldo 2 sql sql-server-2008

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

USE [jm0235242]
CREATE VIEW InvoiceBasic 
AS
SELECT VendorName, InvoiceNumber, InvoiceTotal
FROM Vendors JOIN Invoices ON Vendors.VendorID = Invoices.VendorID
Run Code Online (Sandbox Code Playgroud)

它与我的USE声明存在问题:

'CREATE VIEW'必须是查询批处理中的第一个语句".

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

mar*_*c_s 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
Run Code Online (Sandbox Code Playgroud)

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

更新:这个问题,为什么完全CREATE VIEW(同时也ALTER VIEW为此事)必须是一个批次的第一条语句躲开我-我从来没有听说过这方面的任何说服力的解释.也许微软或与团队关系密切的人都知道这一点,可以为我们所有人解释一下吗?:-)