--------------------------------------------------------- 准备工作 -----------------------------------------------------------
变量
变量分为两种
第一种:局部变量
局部变量是:@
声明: DECLARE @HELLO CHAR(10)
赋值: 1. SET @HELLO = 'world'
2. SELECT @HELLO = Expression
如果Expression返回多个值那么最后一个值赋值给@HELLO
如果Expression无返回值那么 @HELLO 保持不变
如果Expression不是有返回值的查询结果,那么 @HELLO赋值为空
第二种:全局变量
全局变量是:@@
@@MAX_CONNECTIONS 允许连接的最大数量
@@PROCID 返回当前存储过程的ID
@@REMSERVER 返回注册记录中显示的远程数据服务器的名称
@@SERVERNAME 返回允许SQL Server的本地服务器名称
@@SERVICENAME 返回SQL Server运行时的注册键名称
@@SPID 返回服务器处理标识符
@@TRANCOUNT 返回当前连接的有效事物数
@@VERSION 返回当前SQL Server服务器的日期,版本和处理器类型
存储过程是数据库对象
CREATE PROCEDURE 同其他CREATE语句一样不能够同其他语句在同一个批处理一起使用。
--------------------------------------------------------- 正文 -----------------------------------------------------------
存储过程内容
1. 创建无参存储过程
CREATE PROC name
AS
sql_statement
示例:
USE shop --shop 数据库的名字
GO
CREATE PROC select_GoodsTypes
AS
SELECT 类别号
FROM 商品表
GO
2. 执行无参存储过程
如果存储过程是批处理的第一条语句,那么可以省略EXECUTE语句。
示例:
USE shop
GO
EXECUTE select_GoodsTypes
GO
3. 删除无参存储过程
示例:
USE shop
GO
DROP PROCEDURE select_GoodsTypes
GO
4. 创建和执行含参数存储过程
语法:
CREATE PROC procedure_name
[@parameter data_type]
[@parameter data_type] OUTPUT
5.使用输入参数
输入参数有两种方法,一种是按照位置传递,一种是按照参数名传递。
示例:
EXEC procedure_name '通信产品'
EXEC procedure_name @productName='通信产品'
6.结果返回
结果返回有两种方式,一种是使用OUTPUT关键字,另一种是使用RETURN关键字。
OUTPUT关键字:
示例:
CREATE PROC proName
@para INT OUTPUT
AS
SELECT @para = AVG(价格)
FROM 商品表
--调用
DECLARE @pr INT
EXECUTE proName @pr OUTPUT
RETURN关键字:
示例:
CREATE PROC proName
AS
DECARE @result INT
SELECT @result = AVG(价格)
FROM 商品表
RETURN @result
--调用
DECLARE @res INT
EXECUTE @res=proName