CREATE PROC和CREATE PROCEDURE有什么区别?

5

我已经搜索了msdn,但没有找到答案。是否存在我应该知道的区别?

如果真的没有区别,那么为什么会存在这种冗余呢?

--SQL Server Stored Procedure Syntax
CREATE { PROC | PROCEDURE } [schema_name.] procedure_name [ ; number ] 
    [ { @parameter [ type_schema_name. ] data_type }
        [ VARYING ] [ = default ] [ OUT | OUTPUT | [READONLY]
    ] [ ,...n ] 
[ WITH <procedure_option> [ ,...n ] ]
[ FOR REPLICATION ] 
AS { [ BEGIN ] sql_statement [;] [ ...n ] [ END ] }
[;]

与DROP PROC相同

DROP { PROC | PROCEDURE } { [ schema_name. ] procedure } [ ,...n ]

4
它们只是彼此的简称,没有任何区别。 - Code Different
3
你发布的语法解释了。{ PROC | PROCEDURE }应该读作PROC或PROCEDURE-竖杠表示或。 - Ken White
@KenWhite 我知道这一点。我只是想知道是否有区别,以及为什么会有潜在的不必要的重复。 - LCIII
如果你理解了它是OR,那么你就应该明白它们是同一件事(这就是为什么我假定你没有理解并进行了解释)。这也不是“冗余”,只是缩写和长等效的区别。 - Ken White
语法表明两者都被支持,并且文档中没有解释语义差异,因此你只能假设它们之间没有区别。(当存在语义差异时,例如 [ NULL | NOT NULL ],将在文档中进行解释。)它可能仅仅是为了与旧版本的产品兼容而提供的。我没有找到证据表明它是ISO/IEC标准所必需的。(请注意,语法中似乎存在一个错误。我认为应该是 [ OUT | OUTPUT ] [READONLY]。) - HABO
1个回答

16

这两者之间没有区别。

编辑以回答您的新问题 - 这里没有“冗余”,一个只是另一个的缩写。 “Procedure”是一个相当长的单词,人们倾向于为事物制定快捷方式。同样,“Exec”和“Execute”是相同的。


这并没有提供问题的答案。如果您想对作者进行批评或请求澄清,请在他们的帖子下留言。 - Barranka
12
@Barranka 嗯...是的,它确实有。 - TZHX

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接