2

真相:我不擅长 SQL,经过一番研究,我无法弄清楚这一点。我正在阅读有关利用视图的一章,但无法使此查询起作用:

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

我的 USE 语句有问题:

'CREATE VIEW' 必须是查询批处理中的第一条语句”。

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

4

2 回答 2

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现在是第二个批处理中的第一条语句,它也很开心并且有效

更新:为什么(以及就此而言)必须是批次的第一个语句的问题使我难以理解-我从未听到过任何令人信服的解释。也许 Microsoftie 或与团队关系密切的人知道这一点并且可以为我们所有人解释?:-)CREATE VIEWALTER VIEW

于 2012-11-22T19:11:13.820 回答
1

需要一个“GO”.....回答了我自己的问题!谁能告诉我为什么我需要这个,因为我想理解我为什么需要它。

于 2012-11-22T19:13:38.427 回答