使用SQL语句创建存储过程

1.创建一个存储过程info1,用于输出指定学生姓名的信息,包括学号,姓名,出生日期和系别,然后执行该存储过程。

2.创建一个存储过程info2,用于获取指定学生姓名的信息。该存储过程执行完毕后可获取这些信息:姓名,学号,出生日期,以及系别;再编写代码执行这个存储过程并输出该存储过程带回的信息。

3.创建并执行存储过程P_add(实现累加和)累加数作为输入参数,累加和作为输出参数

使用SQL语句创建存储的具体过程如下:

1、首先,打开企业管理器,选择【工具】-【查询分析器】:

2、然后,输入SQL语句。如下:

CREATE PROCEDURE byroyalty1 @percentage int

AS

select au_id from titleauthor

where titleauthor.royaltyper = @percentage

GO

3、然后,点击确定之后,命令就会自动添加进查询中:

4、然后执行一下刚输入的命令:

5、最后,就可以在弹出的小窗口中查看存储过程了:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-08-13
语法
CREATE PROC [ EDURE ] procedure_name [ ; number ]
[ { @parameter data_type }
[ VARYING ] [ = default ] [ OUTPUT ]
] [ ,...n ]

[ WITH
{ RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ]

[ FOR REPLICATION ]

AS sql_statement [ ...n ]
参数
procedure_name

新存储过程的名称。过程名必须符合标识符规则,且对于数据库及其所有者必须唯一。有关更多信息,请参见使用标识符。

要创建局部临时过程,可以在 procedure_name 前面加一个编号符 (#procedure_name),要创建全局临时过程,可以在 procedure_name 前面加两个编号符 (##procedure_name)。完整的名称(包括 # 或 ##)不能超过 128 个字符。指定过程所有者的名称是可选的。

;number

是可选的整数,用来对同名的过程分组,以便用一条 DROP PROCEDURE 语句即可将同组的过程一起除去。例如,名为 orders 的应用程序使用的过程可以命名为 orderproc;1、orderproc;2 等。DROP PROCEDURE orderproc 语句将除去整个组。如果名称中包含定界标识符,则数字不应包含在标识符中,只应在 procedure_name 前后使用适当的定界符。

@parameter

过程中的参数。在 CREATE PROCEDURE 语句中可以声明一个或多个参数。用户必须在执行过程时提供每个所声明参数的值(除非定义了该参数的默认值)。存储过程最多可以有 2.100 个参数。

使用 @ 符号作为第一个字符来指定参数名称。参数名称必须符合标识符的规则。每个过程的参数仅用于该过程本身;相同的参数名称可以用在其它过程中。默认情况下,参数只能代替常量,而不能用于代替表名、列名或其它数据库对象的名称。有关更多信息,请参见 EXECUTE。

data_type

参数的数据类型。所有数据类型(包括 text、ntext 和 image)均可以用作存储过程的参数。不过,cursor 数据类型只能用于 OUTPUT 参数。如果指定的数据类型为 cursor,也必须同时指定 VARYING 和 OUTPUT 关键字。有关 SQL Server 提供的数据类型及其语法的更多信息,请参见数据类型。

调用:exec 存储过程名 参数
第2个回答  推荐于2017-12-16
1.create procedure print_std_info1
@name varchar(8)
as
select 学号,姓名,系别,出生日期 from student where 姓名=@name
execute print_std_info1 '高春接'

2.create procedure print_std_info2
@name varchar(8),
@num varchar(8) output,
@xb varchar(8) output,
@birthdate datetime output
as
select @num=学号,@name=姓名,@xb=系别,@birthdate=出生日期 from student where 姓名=@name
go
declare @num varchar(8) ,@name varchar(8),@xb varchar(8),@birthdate datetime
set @name='高春接'
execute print_std_info1 @name,@num output,@xb output,@birthdate output
print'姓名:'+@name
print '学号:'+@num
print'系别:'+@xb
print '出生日期:'+convert(varchar(8),@birthdate)

3.create proc p_add
@n int,@sum int output
as declare @i int
set @i=1
set @sum=0
while @i<=@n
begin
set @sum=@sum+@i
set @i=@i+1
end
go
declare @n int,@sum int
set @n=100
exec p_add @n,@sum output
print '累加和为:'+cast(@sum as varchar(5))本回答被网友采纳
第3个回答  2020-12-27

MySQL教程4 MySQL8运算符、函数、存储过程及新增数据类型 17.之创建带有IN和OUT参数的存储过程 学习猿地

第4个回答  2013-08-13
create proc [info1]
@name char(8)
as
select 学号,姓名,出生日期,系别 from 学生表 where name=@id.
执行:exec proc '王八'