存储过程与函数的区别
什么是存储过程?用什么来调用?
答:存储过程·是一个预编译的 SQL 语句,优点是允许模块化的设计,就是说只需创建一次,以后在该程序中就可以调用多次。如果某次操作需要执行多次 SQL ,
使用存储过程比单纯 SQL 语句执行要快。可以用一个命令对象来调用存储过程。
优点
1.效率高
存储过程编译一次后,就会存到数据库,每次调用时都直接执行。而普通的sql语句我们要保存到其他地方(例如:记事本 上),都要先分析编译才会执行。所以想对而言存储过程效率更高
2.降低网络流量
存储过程编译好会放在数据库,我们在远程调用时,不会传输大量的字符串类型的sql语句。
3.复用性高
存储过程往往是针对一个特定的功能编写的,当再需要完成这个特定的功能时,可以再次调用该存储过程。
4.可维护性高
当功能要求发生小的变化时,修改之前的存储过程比较容易,花费精力少。
5.安全性高
完成某个特定功能的存储过程一般只有特定的用户可以使用,具有使用身份限制,更安全。
缺点
不易修改和维护
调试麻烦
将业务逻辑放在数据库层面,数据库压力增加,无扩展性
create procedure name
@参数1 参数类型,
@参数2 参数类型 out
as
sql脚本
go
=============将表名作为参数传入存储过程(将执行的sql作为一个字符串,然后在执行字符串)======================================
ALTER PROCEDURE [dbo].[sp_tablenametest]
@table_name varchar(50),
@PMId int,
@ValueEq int
AS
BEGIN
SET NOCOUNT ON;
DECLARE @cmd AS NVARCHAR(max)
SET @cmd = N'SELECT * FROM ' + @table_name +
' WHERE Column1 = ''' + @PMId + '''' +
' AND Column2= ''' + @ValueEq + ''''
EXEC sp_executesql @cmd
END
Hi,
Tomorrow!