在SQLServer中,存储过程和T-SQL语句,哪个执行快,为什么

存储过程可以加快执行速度。
当一个操作包含大量SQL代码或多次执行时,存储过程的运行速度比批处理快得多。
由于存储过程是预编译的,因此查询优化器会在第一次执行存储过程时对其进行分析和优化,创建最终存储在系统表中的执行计划。
批量SQL语句每次执行时都需要进行编译和优化,因此速度相对较慢。

sqlserver怎么创建存储过程

SQL创建存储过程:

1.基本语法:

createproc|pro_name[{@参数数据类型}[=默认值][输出],{@参数数据类型}[=默认值][输出],....]asSQL_statements

2.创建存储过程的一般示例

1.创建不带参数的存储过程

createprocproc_get_studentasselect*fromStudent;

执行存储过程:

execproc_get_student;

2.带参数的存储过程

createprocproc_find_stu(@startIdint,@endIdint)asselect*fromStudentwhereidbetween@startIdand@endId

运行存储过程:

execproc_find_stu2,4;

3.带通配符参数的存储过程

createprocproc_findStudentByName(@namevarchar(20)='%j%',@nextNamevarchar(20)='%')asselect*来自学生,姓名如@name,姓名如@nextName;

执行存储过程:

execproc_findStudentByName;execproc_findStudentByName'%o%','t%';

4.带输出参数的存储过程

createprocproc_getStudentRecord(@idint,--默认输入参数@namevarchar(20)out,--输出参数@agevarchar(20)输出-输入输出参数)asselect@name=name,@age=theageofschool,whereid=@idandsex=@age;

运行存储过程来自:

声明@idint,@namevarchar(20),@tempvarchar(20);set@id=7;set@temp=1;execproc_getStudentRecord@id,@nameout,@temp输出;select@name,@temp;print@name+'#'+@temp;