简单的入门存储过程语句
一,创建存储过程
例1.--创建一个简单的不带参数的存储过程 Test
CREATE PROCEDURETest
AS
BEGIN
SELECT * FROM Students
END
--执行存储过程 Test
EXEC Test
CREATE PROCEDURETest
@id INT
AS
BEGIN
SELECT * FROM StudentsWHEREID=@id
END
--执行存储过程 Test
EXEC Test 1
例3.--创建一个要求输入两个输入参数的存储过程 Test
CREATE PROCEDURE Test
@id INT,
@name VARCHAR(20)
AS
BEGIN
SELECT * FROM StudentsWHEREID=@idANDName=@name
END
--执行存储过程
EXEC Test 1,'张三'
例4.--创建一个带返回值的存储过程 Test
CREATE PROCEDURETest
@id INT,
@name VARCHAR(20),
@age INT OUTPUT
AS
BEGIN
SELECT @age=Age FROM Students WHEREID=@idANDName=@name
END
--执行存储过程
DECLARE @nianling INT --定义一个变量来接收存储过程的返回值
EXEC Test 1,'张三',@nianlingOUTPUT
SELECT @nianling --查询出返回值
例5.--带有RETURN的存储过程
CREATE PROCEDURETest
@id INT,
@name VARCHAR(20)
AS
BEGIN
DECLARE @returnname VARCHAR(20)
SELECT @returnname=AgeFROMStudentsWHERE ID=@idANDName=@name
RETURN @returnname
END
--执行存储过程
DECLARE @return INT
EXEC @return=Test1,'张三'
SELECT @return
例6.--创建存储过程项数据表中插入数据
CREATE PROCEDURETest
@id INT,
@name VARCHAR(20),
@age INT,
@sex varchar(4),
@classId INT,
@address VARCHAR(40)
AS
BEGIN
INSERT Students(ID,Name,Age,Sex,ClassID,Address)
values(@id,@name,@age,@sex,@classId,@address)
END
--执行存储过程
EXEC Test8,'张小小',18,'女',2,'北京'
--查询表中是否插入数据
SELECT *FROMStudentsWHERE ID=8
例7.--通过存储过程删除数据表中的数据
CREATE PROCEDURETest
@id INT
AS
BEGIN
DELETE Students WHERE ID=@id
END
--执行存储过程
EXEC Test8
SELECT *FROMStudents
例8.--一个相对复杂的存储过程首先判断表中有没有,如果有更新表中的数据,没有的向表中插入一行数据
CREATE PROCEDURETest
(@shoppingCartIdnvarchar(50),
@quantity int=1,--默认为1
@productId int)
AS
IF EXISTS(SELECT* FROM Sales.ShoppingCartItemWHERE ShoppingCartID=@shoppingCartIdAND ProductID=@productId)
BEGIN
UPDATE Sales.ShoppingCartItemSET Quantity=@quantityWHERE ShoppingCartID=@shoppingCartIdAND ProductID=@productId
PRINT 'UPDATE SUCCEND'--更新成功显示UPDATE SUCCEND
END
ELSE
BEGIN
INSERT Sales.ShoppingCartItem(ShoppingCartID,ProductID,Quantity)VALUES(@shoppingCartId,@productId,@quantity)
PRINT 'INSERT SUCCEND'--插入成功显示INSERT SUCCEND
END
--执行存储过程
EXEC Test'125',316
二.修改存储过程
例1.--修改已经创建的存储过程
ALTER PROCEDURETest
@address VARCHAR(40)
AS
BEGIN
SELECT * FROM StudentsWHEREAddress=@address
END
--执行修改后的存储过程
EXEC Test'北京'
ALTER PROCEDURETest
@groupname NVARCHAR(50)
AS
BEGIN
SELECT Name FROM HumanResources.DepartmentWHERE GroupName=@groupnameORDER BY Name
SELECT @@ROWCOUNT '影响的行数'--调用系统全局变量
END
--执行存储过程将返回两个结果集
EXEC Test'Research and Development'
三.删除存储过程
例1.--删除名子为Test的存储过程
DROP PROCEDURETest
--更新中
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。