CREATE [ OR ALTER ] { PROC | PROCEDURE }
[schema_name.] procedure_name [ ; number ]
[ { @parameter_name [ type_schema_name. ] data_type }
[ VARYING ] [ NULL ] [ = default ] [ OUT | OUTPUT | [READONLY]
] [ ,...n ]
[ WITH <procedure_option> [ ,...n ] ]
[ FOR REPLICATION ]
AS { [ BEGIN ] sql_statement [;] [ ...n ] [ END ] }
[;]
<procedure_option> ::=
[ ENCRYPTION ]
[ RECOMPILE ]
[ EXECUTE AS Clause ]
这段模板是 SQL Server 中创建存储过程的语法,下面是每个符号的含义:
{ } 表示可以选择其中一个选项。
[ ] 表示方括号内的内容为可选项。
<> 表示尖括号内的内容需要根据具体情况替换为实际的值。
| 表示竖线两侧的内容为可选项,可以选择其中一个。
具体解释如下:
CREATE [ OR ALTER ] PROCEDURE:表示创建一个存储过程。OR ALTER 表示如果该存储过程已经存在,则更新它而不是创建一个新的。
[schema_name.] procedure_name [ ; number ]:指定存储过程的名称和编号(可选)。schema_name 是可选的,如果没有指定,则使用默认架构。number 是可选的,用于指定多个存储过程名字相同但参数不同的版本。
@parameter_name:表示存储过程的输入参数名称。
type_schema_name. data_type:指定输入参数的数据类型。type_schema_name 是可选的,如果省略,则默认使用 dbo 架构。data_type 可以是任何 SQL Server 数据类型,例如,int、varchar、datetime 等等。
VARYING:表示输入参数的长度可变。
NULL:表示输入参数允许为空。
= default:表示指定输入参数的默认值。
OUT | OUTPUT | [READONLY]:表示输出参数或只读参数(当指定 EXECUTE AS Clause 后)。
,...n:表示可以指定多个输入参数。
WITH <procedure_option> [ ,...n ]:指定存储过程的选项。可以指定多个选项,用逗号分隔。
FOR REPLICATION:表示该存储过程可用于复制。
AS { [ BEGIN ] sql_statement [;] [ ...n ] [ END ] }:指定存储过程的主体。可以包含多个 SQL 语句或 Transact-SQL 语句块。
<procedure_option>:存储过程选项,可以是以下之一:
ENCRYPTION:表示加密存储过程定义。
RECOMPILE:表示在每次执行存储过程时重新编译存储过程。
EXECUTE AS Clause:指定运行存储过程的安全上下文。可以是任何有效的 SQL Server 安全上下文,例如,OWNER、SELF、USER 等等。
参考https://learn.microsoft.com/en-us/sql/t-sql/language-elements/transact-sql-syntax-conventions-transact-sql?view=sql-server-ver15
网友评论