SQL Server存储过程实例
生活随笔
收集整理的這篇文章主要介紹了
SQL Server存储过程实例
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
SQL 存儲過程實(shí)例
存儲過程是由過程化SQL語句書寫的過程,這個過程經(jīng)編譯和優(yōu)化后存儲在數(shù)據(jù)庫服務(wù)器中。類似于函數(shù),使用時只需調(diào)用即可。
使用存儲過程有以下優(yōu)點(diǎn):
1、實(shí)現(xiàn)了SQL語句的可復(fù)用性
2、存儲過程降低了客戶機(jī)和服務(wù)器之間的通信量
3、方便實(shí)施企業(yè)規(guī)劃
存儲過程的創(chuàng)建一般格式
GO
CREATE PROC proc_name(參數(shù)表)
AS
SQL語句
GO
這里使用之前創(chuàng)建好的學(xué)生數(shù)據(jù)庫,在該數(shù)據(jù)庫的表上創(chuàng)建存儲過程
①創(chuàng)建一個帶輸入?yún)?shù)的存儲過程proc_student,其中的輸入?yún)?shù)用于接收課程號,默認(rèn)值為“C601”,然后在SC表中查詢該課成績不及格的學(xué)生學(xué)號,
?接著在student表中查找這些學(xué)生的基本信息,包括學(xué)號、姓名、性別和所在系信息,最后輸出。
? USE STUDENTIF OBJECT_ID ('proc_student','P') IS NOT NULL /*如果存在該存儲過程,則刪除之*/DROP PROCEDURE proc_student;GO /*存儲過程必須從批處理的第一條開始*/ CREATE PROC proc_student(@cno char(4)) AS BEGINSET NOCOUNT ON; /*阻止在結(jié)果集中返回可顯示受 Transact-SQL 語句或存儲過程影響的行計(jì)數(shù)的消息*/SELECT * FROM Student WHERE Sno IN(SELECT sno FROM SC WHERE Cno=@cno AND Grade<60) END GO EXEC proc_student'C601' /*執(zhí)行該存儲過程*/
②創(chuàng)建一個為student表添加學(xué)生記錄的存儲過程Proc_AddStudent。
IF OBJECT_ID ('Proc_AddStudent','P') IS NOT NULLDROP PROCEDURE Proc_AddStudent; GO CREATE PROC Proc_AddStudent(@Sno char(4),@SName nvarchar(10),@Sex char(2),@Age int,@SNative varchar(20),@Department varchar(10),@SAddress varchar(20)) AS INSERT INTO Student VALUES(@Sno,@SName,@Sex,@Age,@SNative,@Department,@SAddress) GO EXEC Proc_AddStudent '1802','張華','男',22,'上海','數(shù)計(jì)系',NULL; SELECT *FROM Student③創(chuàng)建一個存儲過程Proc_DelStudent刪除Student表中指定學(xué)號的記錄。
在查詢命令的窗口中輸入DROP PROCEDURE語句,刪除存儲過程。
DROP PROCEDURE proc_student
DROP PROCEDURE Proc_AddStudent
DROP PROCEDURE Proc_DelStudent
總結(jié)
以上是生活随笔為你收集整理的SQL Server存储过程实例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 常用的硬盘数据恢复软件Easyrecov
- 下一篇: 数据库存储过程讲解与实例