Sql 在创建视图之前使用语句

Sql 在创建视图之前使用语句,sql,sql-server-2008,Sql,Sql Server 2008,真相:我不擅长SQL,经过一些研究,我无法弄明白这一点。我正在阅读关于利用视图的一章,但无法使此查询正常工作: USE [jm0235242] CREATE VIEW InvoiceBasic AS SELECT VendorName, InvoiceNumber, InvoiceTotal FROM Vendors JOIN Invoices ON Vendors.VendorID = Invoices.VendorID 它与我的使用声明有问题: “创建视图”必须是查询批处理中的第一条语句

真相:我不擅长SQL,经过一些研究,我无法弄明白这一点。我正在阅读关于利用视图的一章,但无法使此查询正常工作:

USE [jm0235242]
CREATE VIEW InvoiceBasic 
AS
SELECT VendorName, InvoiceNumber, InvoiceTotal
FROM Vendors JOIN Invoices ON Vendors.VendorID = Invoices.VendorID
它与我的使用声明有问题:

“创建视图”必须是查询批处理中的第一条语句”


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

您需要确保
创建视图
是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
现在是第二个批处理中的第一条语句,而且它也很好用


更新:问题为什么确切地说是
创建视图
(以及
更改视图
)一定是一批产品中的第一句话让我摸不着头脑-我从来没有听到过任何令人信服的解释。也许微软或团队中的某个人知道这一点,可以为我们所有人解释一下?:-)

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

可能相关,但
有什么影响在MS SQL中是否有这样的结构化查询?一般好奇。@TheCapn:分号只是终止一个语句,而不是一个批处理。在一个批处理中,您仍然可以有多个语句—所有语句都以分号结尾—谢谢!我明白了,当我恢复精神时,你回答了我的问题!