--------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
1.存储过程的种类:
- 系统存储过程:以sp_开头,用来进行系统的各项设定.取得信息.相关管理工作,如sp_help就是取得指定对象的相关信息;
- 扩展存储过程以xp_开头,用来调用操作系统提供的功能exec xp_cmdshell 'ping 192.168.1.1';
- 用户自定义的存储过程,这是我们所指的存储过程,建议以up_开头。
2.创建、修改、删除存储过程:
CREATE PROCEDURE procedue_name
[(@parameter1 data_type[(length)]][output],…@parameter1024 data_type[(length)]][output])]
[with] {RECOMPILE | ENCRYPTION | RECOMPILE, ENCRYPTION}}
AS
sql_statement
参数的使用方法:
- output:表示此参数是可传回的
- with {recompile|encryption}
- recompile:表示每次执行此存储过程时都重新编译一次
- encryption:所创建的存储过程的内容会被加密
/*求各个课程号及相应的选课人数。*/
CREATE PROCEDURE UP_NoAndNums
AS
SELECT No,COUNT(No) FROM SC GROUP BY No;
/*插入一个学生到Student表中,并统计学生人数。*/
CREATE PROCEDURE UP_Insert_Student
@No VARCHAR(50),
@Name VARCHAR(50),
@Sex CHAR(10),
@Age SMALLINT,
@Dept VARCHAR(50),
@Snum INT OUTPUT
WITH ENCRYPTION -------加密
AS
INSERT INTO Student(No,Name,Sex,Age,Dept)Values(@No,@Name,@Sex,@Age,@Dept)
SELECT @Snum=COUNT(No) FROM Student
如果需要修改存储过程,采用ALTERPROCEDURE,如修改存储过程UP_Update_StuName,在以下代码中修改即可。
ALTER PROCEDURE [dbo].[UP_Update_StuName]
@OldName VARCHAR(50),
@NewName VARCHAR(50)
AS
UPDATE Student SET Name=@NewName WHERE Name=@OldName
如果要删除一个存储过程,采用DROP PROCEDURE,如删除存储过程UP_Update_StuName:
DROP PROCEDURE UP_Update_StuName;
存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。它是数据库服务器端的执行代码,在服务器执行操作时,减少网络通讯,提高执行效率。
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
详细请查看: http://edu.csdn.net