mssql存储过程语法详解(备忘)
语法
CREATE PROC[ EDURE ] [ owner. ] procedure_name [ ; number ]
[ { @parameter data_type }
[ VARYING ] [ = default ] [ OUTPUT ]
] [ ,...n ]
[ WITH
{ RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ]
[ FOR REPLICATION ]
AS sql_statement [ ...n ]
参数
owner
拥有存储过程的用户 ID 的名称。owner 必须是当前用户的名称或当前用户所属的角色的名称。
procedure_name
新存储过程的名称。过程名必须符合标识符规则,且对于数据库及其所有者必须唯一。
;number
是可选的整数,用来对同名的过程分组,以便用一条 DROP PROCEDURE 语句即可将同组的过程一起除去。例如,名为 orders 的应用程序使用的过程可以命名为orderproc;1、orderproc;2 等。DROP PROCEDURE orderproc 语句将除去整个组。如果名称中包含定界标识符,则数字不应包含在标识符中,只应在 procedure_name 前后使用适当的定界符。
@parameter
过程中的参数。在 CREATE PROCEDURE 语句中可以声明一个或多个参数。用户必须在执行过程时提供每个所声明参数的值(除非定义了该参数的默认值,或者该值设置为等于另一个参数)。存储过程最多可以有 2.100 个参数。
使用 @ 符号作为第一个字符来指定参数名称。参数名称必须符合标识符的规则。每个过程的参数仅用于该过程本身;相同的参数名称可以用在其它过程中。默认情况下,参数只能代替常量,而不能用于代替表名、列名或其它数据库对象的名称。
data_type
参数的数据类型。除 table 之外的其他所有数据类型均可以用作存储过程的参数。但是,cursor 数据类型只能用于 OUTPUT 参数。如果指定 cursor 数据类型,则还必须指定 VARYING 和 OUTPUT 关键字。对于可以是 cursor 数据类型的输出参数,没有最大数目的限制。
VARYING
指定作为输出参数支持的结果集(由存储过程动态构造,内容可以变化)。仅适用于游标参数。
default
 
相关文档:
在select語句里面可以使用case來對某個colmun的值進行分別處理,比如
select case color
when 1 then 'red'
when 2 then 'green'
when 3 then 'blue'
else 'black'
end as 'colorName',
foodName from foods
如果使用了left join的時候,某個column的n ......
create PROCEDURE zdy_CBFY (@SFSS VARCHAR(1),@DWBH varchar(20),@KMBH VARCHAR(10),@KJND VARCHAR(4))
AS
DECLARE @ZWkmye varchar(20),@zwkmzd varchar(20),@ZWSSKMYE varchar(20)
set @zwkmye='zwkmye'+@kjnd
SET @ZWKMZD='ZWKMZD'+@KJND
SET @ZWSSKMYE='ZWSSKMYE'+@KJND
其 ......
set statistics profile on
set statistics io on
set statistics time on
select top 1 * from et_order order by pkid desc
结果如下:
SQL Server 分析和编译时间:
CPU 时间 = 0 毫秒,占用时间 = 1 毫秒。
SQL Server 执行时间:
CPU 时间 = 0 毫秒,占用时间 = 1 毫秒。
SQL Se ......
Create proc RegisterUser
(
@usrName varchar(30)
,@usrPasswd varchar(30)
,@age int
,@PhoneNum varchar(20)
,@Address varchar(50)
)
as
begin
--显示定义并开始一个事务
begin tran
insert into user
(
userName
,userPasswd
)
values
(
@usrName
,@usrPassw ......