1、定义方式不同:存储过程是将一组SQL语句封装成一个可执行的程序,而函数是将一段具有特定功能的SQL语句封装成一个可调用的程序。2、返回值类型不同:存储过程没有返回值,而函数有返回值。3、调用方式不同:存储过程可以通过EXECUTE命令或select命令来调用,而函数只能通过select命令来调用。4、事务处理不同:存储过程可以进行事务处理,而函数不能。5、触发器支持不同:存储过程可以与触发器一起使用,而函数不能。