避免sql注入的方法
一、存储程序
在学习数据库视频的时候接触过,它是存储在数据库中的一些事先编译好的指令。在用的时候不用重新编写,直接调用就好了。所以,使用它可以大大提高程序的执行效率。
那么,如何创建一个存储程序并使用它呢?这是我们今天要解决的问题。
1.创建过程
可编程性——下拉菜单——存储过程——右键——查询菜单———指定模板参数的值——新建查询——输入语句——查询菜单中的分析检查语法是否正确——执行
2.具体创建语法
在创建存储程序时,为了应对各种变换的数据,通常会涉及到带参数的存储程序,其中参数用@来
示。Create Procedure procedurename[:number]--[:number]表示一组存储程序中的第几个,如果只有一个,此参数可忽略
[@parameter data_type] [default] [OUTPUT]--@parameter表示存储过程中的参数,default 表示默认值,OUTPUT表示输出值即输出值 as SqlStatement --[]代表可选参数。
3.具体执行过程
exec[ute] procedurename [参数]
举例:
--创建
CreateProcedure scores @score1smallint, @score2smallint, @score3smallint, @score4smallint, @score5smallint, @myAvgsmallint Output--Output可用return来代替
As select @myAvg=(@score1+@score2+@score3+@score4+@score5)/5 --调用过程
Declare@avgscore smallint --将输出结果放在avgscore中
Execavgscore Output 5,6,7,8,9, --带有参数的存储过程调用时,必须加上Output关键字,否则SQL会当做参数来对待。
小结:存储程序的创建可分为带参数和不带参数,以及含有默认值和输出值得存储程序,但是它们的使用原理是一样的。只是带输出值得存储程序在调用过程中要使用关键字Output来对要输出的变量进行声明,否则SQL会将它当做参数来处理。
、