Tsql &引用;将过程SPNAME创建为";vs.“;将过程SPNAME创建为“开始/结束”;

Tsql &引用;将过程SPNAME创建为";vs.“;将过程SPNAME创建为“开始/结束”;,tsql,Tsql,创建存储过程时,开始/结束块是否起作用 例如 vs 后者只是一种很好的编程风格,遵循一般标准。据我所知,它们在任何方面都没有区别 我个人认为,在每个逻辑代码块(甚至在存储过程的情况下)周围都有一个BEGIN和END是有意义的,并且可以提高可读性。如中所示,BEGIN/END是可选的: {[BEGIN]sql_语句[;][…n] [完]} 一个或多个Transact-SQL 构成本报告正文的声明 程序您可以使用可选的 开始和结束关键字以将 声明。有关信息,请参阅 最佳实践、一般性意见和建议 限制和

创建存储过程时,开始/结束块是否起作用

例如

vs


后者只是一种很好的编程风格,遵循一般标准。据我所知,它们在任何方面都没有区别

我个人认为,在每个逻辑代码块(甚至在存储过程的情况下)周围都有一个
BEGIN
END
是有意义的,并且可以提高可读性。

如中所示,BEGIN/END是可选的:

{[BEGIN]sql_语句[;][…n] [完]}

一个或多个Transact-SQL 构成本报告正文的声明 程序您可以使用可选的 开始和结束关键字以将 声明。有关信息,请参阅 最佳实践、一般性意见和建议 限制和限制章节 接下来就是


出于个人喜好,我总是将它们包括在内。

对我来说,这只是一个不必要的额外缩进级别。但是,如果使用
BEGIN CATCH
-
END TRY
BEGIN CATCH
-
END CATCH
将其设置为
BEGIN TRY
,则会增加真正的用途。

这种情况下没有真正的用途。但是,如果使用BEGIN/END块,代码将可读且干净。

BEGIN和END与存储过程无关,但它们是函数所必需的

好:

不好:

CREATE FUNCTION dbo.fun(@v varchar(10))
RETURNS INT
AS
RETURN 1

我见过很多带有开始/结束块的代码,它们的可读性不是很好。可读代码远不止在任何地方都使用开始/结束块。
围绕代码的每个逻辑块开始和结束。
,哎呀!我想这会得到更多的帮助。我明白你的意思。我试图指出最佳实践。我不会在一行或琐碎的地方使用它。。。
CREATE PROCEDURE SPNAME
AS
BEGIN
  SELECT * FROM TABLE
END
CREATE PROC dbo.sproc(@v varchar(10))
AS
RETURN -1
CREATE FUNCTION dbo.fun(@v varchar(10))
RETURNS INT
AS
RETURN 1