34,838
社区成员




--写存储过程时经常
create proc proc1
as
begin
...
end
--但我习惯少打点,我就写
create proc proc1
as
...
/*
也就是想问下写这个最外层的begin和end跟不写有没什么区别?
比如oralce里begin end块代表那是一个pl/sql块,会当成1个块只需解析次数;
不过mssql既然这是一个建过程的语句,建成了也就是一个块,一次解析吧?写跟不写貌似没区别?
我主要因为有时内部的begin end太多,我就不乐意写最外层的begin end了,免得更晕
*/
--Transact-SQL 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 ] }
[;]