刚刚启动SQL,根本不知道我在做什么,在创建和使用视图时遇到麻烦

刚刚启动SQL,根本不知道我在做什么,在创建和使用视图时遇到麻烦,sql,ssms,sql-view,Sql,Ssms,Sql View,我最近开始使用SQL,我完全不知道我在做什么。我创建了一个Query.sql文件并开始抛出一些随机命令。我高亮显示一个SELECT并执行它以查看发生了什么,我添加了一个新的SELECT,高亮显示它并查看它做了什么 然而,当我试图创建一个视图时,它出现了一些问题。我真的不明白为什么,但在它之前和之后使用GO似乎可以解决问题,但现在当我从该视图中选择时,它不认识到这是说,它可以工作,但它用红色突出显示,通常这意味着它不应该编译 有人能用外行的语言解释一下发生了什么事吗?我如何解决SELECT*FRO

我最近开始使用SQL,我完全不知道我在做什么。我创建了一个Query.sql文件并开始抛出一些随机命令。我高亮显示一个SELECT并执行它以查看发生了什么,我添加了一个新的SELECT,高亮显示它并查看它做了什么

然而,当我试图创建一个视图时,它出现了一些问题。我真的不明白为什么,但在它之前和之后使用GO似乎可以解决问题,但现在当我从该视图中选择时,它不认识到这是说,它可以工作,但它用红色突出显示,通常这意味着它不应该编译

有人能用外行的语言解释一下发生了什么事吗?我如何解决SELECT*FROM METRIC_统计数据问题?我试着用同样的方式封装它,其他方式,我甚至不知道它应该是什么样子

GO
CREATE VIEW METRIC_STATS (  ID, MONTH, TEMP_C, RAIN_C) 
AS SELECT   ID, 
            MONTH, 
            (TEMP_F - 32) * 5 /9, 
            RAIN_I * 0.3937 
            FROM STATS;
GO          
SELECT * FROM METRIC_STATS;
现在,当我从该视图中进行选择时,它不会识别 尽管如此,它还是有效的,但它用红色突出显示,通常是这样 意味着它不应该编译

假设您使用的是SQLServerManagementStudio:您必须手动重置其视图列表。您可以通过右键单击视图然后刷新来完成此操作

@如果我的SSMS中没有这样的菜单命令,AlexK的建议也会起作用

现在,当我从该视图中进行选择时,它不会识别 尽管如此,它还是有效的,但它用红色突出显示,通常是这样 意味着它不应该编译

假设您使用的是SQLServerManagementStudio:您必须手动重置其视图列表。您可以通过右键单击视图然后刷新来完成此操作

@如果AlexK的建议存在于我的SSMS中,那么它也会起作用,因为没有这样的菜单命令。

是默认值-大多数DDL语句(如CREATE VIEW)必须是批处理中的第一条语句,因此您的SQL可能会失败,因为在CREATE VIEW之前有其他语句

此外,只能有一个SELECT语句,因此需要在CREATE视图之后和从中选择之前执行GO

请注意,一旦创建了视图,它就在数据库中是“永久的”——您不需要为了使用它而不断地创建它吗?如果需要更改视图,则需要在重新创建视图之前删除它,或更改现有视图。

是默认值-大多数DDL语句(如CREATE view)必须是批处理中的第一条语句,因此您的SQL可能会失败,因为在CREATE view之前有其他语句

此外,只能有一个SELECT语句,因此需要在CREATE视图之后和从中选择之前执行GO

请注意,一旦创建了视图,它就在数据库中是“永久的”——您不需要为了使用它而不断地创建它吗?如果需要更改视图,则需要在重新创建视图之前删除它,或者更改现有视图

我最近开始使用SQL,我完全不知道 我在做什么

我建议您在尝试使用SQL之前先阅读一本关于SQL的书

我最近开始使用SQL,我完全不知道 我在做什么

我建议您在尝试使用SQL之前先阅读一本关于SQL的书


假定SQL Server+Management Studio;它是红色的,因为它不会通过CREATE XXX自动检测新对象的创建,所以错误地认为METRIC_STATS无效,您可以编辑->智能感知->刷新。GO是ManagementStudio用于分离命令批的特殊构造;假定SQL Server+Management Studio;它是红色的,因为它不会通过CREATE XXX自动检测新对象的创建,所以错误地认为METRIC_STATS无效,您可以编辑->智能感知->刷新。GO是ManagementStudio用于分离命令批的特殊构造;是的,我在ssms中编辑了那个标签。事实上,我发现这个命令@AlexK在2008版的SSMS中提到过,它确实需要一个右键单击验证选项,因为它假设的东西是无效的objects@AlexK. 我不确定我能找到这样的选择。可能是因为它不再突出显示了?没有一个,我只是观察到应该有:是的,我在ssms中编辑了该标记。事实上,我发现这个命令@AlexK在2008版的SSMS中提到过,它确实需要一个右键单击验证选项,因为它假设的东西是无效的objects@AlexK. 我不确定我能找到这样的选择。也许是因为它不再突出显示了?没有一个,我只是观察到应该有:你不会通过阅读一本书来学习SQL。MSDN文档是一本参考手册,尤其不适合新手。请查看,了解一种在执行SQL时学习SQL的好方法。您不会通过阅读书籍来学习SQL。MSDN文档是一本参考手册,尤其不适合新手。请查看,以获得在执行SQL时获取SQL的好方法。