/* 1不能返回表变量 2限制少,可以执行对数据库表的操作,可以返回数据集 3存储过程一般用在实现复杂的功能,数据操纵方面。 存储过程的参数分为两种:输入参数和输出参数 输入参数:用于向存储过程传入值,类似java语言或则c中的值传递。 输出参数:用于调用存储过程后,参会结果,类似java语言的按引用传递。 存储过程返回值方式:这三种可以任意组合使用 1 out :exec调用时用有out修饰符变量参数接收 2 return :exec调用时用有”变量=存储过程名称“接收 3 select :exec调用时默认直接返回 */ 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 { <sql_statement> [;][ ...n ] | <method_specifier> } [;] <procedure_option> ::= [ encryption ] [ recompile ] [ execute as clause ] <sql_statement> ::= { [ begin ] statements [ end ] } <method_specifier> ::= external name assembly_name.class_name.method_name --创建存储过程 create procedure peopleproc(@id int,@name varchar(20) output) as begin set @name='china' select getdate() as d1,getdate() as d2 return 'zhongguo' end --修改存储过程 alter procedure peopleproc as select * from people; --删除存储过程 drop procedure peopleproc; --调用存储过程 declare @name varchar(20) exec peopleproc 1,@name output ;