SqlServer 存储过程

SqlServer 存储过程,第1张

概述简单的入门存储过程语句 一,创建存储过程 例1.--创建一个简单的不带参数的存储过程 Test CREATE PROCEDURETest AS BEGIN    SELECT * FROM Students END --执行存储过程 Test EXEC  Test 例2.--创建一个要求输入一个参数的存储过程 Test CREATE PROCEDURETest  @id INT  AS  BEGI

简单的入门存储过程语句

一,创建存储过程

例1.--创建一个简单的不带参数的存储过程 Test

CREATE PROCEDURETest

AS

BEGIN

   SELECT * FROM Students

END

--执行存储过程 Test

EXEC  Test

例2.--创建一个要求输入一个参数的存储过程 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'北京'

例2.--一个相对复杂的修改存储过程

 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


 



--更新中 总结

以上是内存溢出为你收集整理的SqlServer 存储过程全部内容,希望文章能够帮你解决SqlServer 存储过程所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1162704.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存