SQL Server存储过程实例
生活随笔
收集整理的這篇文章主要介紹了
SQL Server存储过程实例
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
SQL 存儲過程實例
存儲過程是由過程化SQL語句書寫的過程,這個過程經編譯和優化后存儲在數據庫服務器中。類似于函數,使用時只需調用即可。
使用存儲過程有以下優點:
1、實現了SQL語句的可復用性
2、存儲過程降低了客戶機和服務器之間的通信量
3、方便實施企業規劃
存儲過程的創建一般格式
GO
CREATE PROC proc_name(參數表)
AS
SQL語句
GO
這里使用之前創建好的學生數據庫,在該數據庫的表上創建存儲過程
①創建一個帶輸入參數的存儲過程proc_student,其中的輸入參數用于接收課程號,默認值為“C601”,然后在SC表中查詢該課成績不及格的學生學號,
?接著在student表中查找這些學生的基本信息,包括學號、姓名、性別和所在系信息,最后輸出。
? 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; /*阻止在結果集中返回可顯示受 Transact-SQL 語句或存儲過程影響的行計數的消息*/SELECT * FROM Student WHERE Sno IN(SELECT sno FROM SC WHERE Cno=@cno AND Grade<60) END GO EXEC proc_student'C601' /*執行該存儲過程*/
②創建一個為student表添加學生記錄的存儲過程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,'上海','數計系',NULL; SELECT *FROM Student③創建一個存儲過程Proc_DelStudent刪除Student表中指定學號的記錄。
在查詢命令的窗口中輸入DROP PROCEDURE語句,刪除存儲過程。
DROP PROCEDURE proc_student
DROP PROCEDURE Proc_AddStudent
DROP PROCEDURE Proc_DelStudent
總結
以上是生活随笔為你收集整理的SQL Server存储过程实例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 常用的硬盘数据恢复软件Easyrecov
- 下一篇: openstack 性能测试