什么是存储过程,相信搜到文章的都已经知道了,不过还是拷贝一段,供大家参考
什么是存储过程呢?
存储过程就是作为可执行对象存放在数据库中的一个或多个SQL命令。
通俗来讲:存储过程其实就是能完成一定操作的一组SQL语句。
那为什么要用存储过程呢?
1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
2.当对数据库进行复杂操作时,可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。
3.存储过程可以重复使用,可减少数据库开发人员的工作量。
4.安全性高,可设定只有某些用户才具有对指定存储过程的使用权
正文:
此片文章建立存储过程主要是为了使用http访问SqlServer数据库,主要介绍两种方式,一种是在URL中直接使用,另一种是通过模板使用
第一步,建立存储过程
打开SqlServer企业管理器,选中要操作的数据库,菜单栏工具->SQL查询分析器,弹出一个窗口,在窗口的标题栏核对下操作的服务器和数据库是否正确,如果正确就可以开始创建代码。已经创建的可以在左边框中看到,窗体的上方有分析查询,和执行查询,就不多做介绍直接代码,谨记最后执行
(1)创建不带参数名字temp1的存储过程,过程中执行一个查表操作
IF EXISTS (SELECT name FROM sysobjects
WHERE name = 'temp1' )
DROP PROCEDURE temp1
GO
CREATE PROCEDURE temp1
AS
SELECT *
FROM Table1
FOR XML AUTO
GO
说明:IF EXISTS判断是否存在temp1,如果存在,drop删除,create创建,as执行sql语句,后面的查询也可改为
AS
SELECT '<ROOT>'
SELECT *
FROM Table1
FOR XML AUTO
SELECT '<ROOT>'
GO
使用:http://172.144.1.100:85/northwind?sql=EXECUTE+temp1&root=ROOT(修改前)
http://172.144.1.100:85/northwind?sql=EXECUTE+temp1(修改后)
172.144.1.100:85 是虚拟目录northwind所在服务器的地址
(2)创建带参数名字temp5的存储过程,过程中执行一个插入操作
IF EXISTS (SELECT name FROM Table1
WHERE name = 'temp5')
DROP PROCEDURE temp5
GO
CREATE PROCEDURE temp5 @num int,@name varchar(50)
AS
INSERT
INTO Table1
VALUES (@num,@name)
GO
说明:在创建的时候附带两个变量,注意和数据库的类型一致,插入不需要返回所以不需要FOR XML AUTO
使用:http://172.144.1.100:85/northwind?sql=execute+temp5+@num=11+,+@name='joy'
最后简单介绍一下在模版中执行存储过程
通过exec temp1执行
模版的具体使用可参考HTTP访问SqlServer模板以及使用