sql用户自定义函数和存储过程有什么区别? 感觉好象差不多,唯一的区别是,用户自定义函数可以在SQL语句中(比如查询语句的某一列,类似max(num)),其它好像没区别了,都是编写功能块然后调用,传参什么的语法也差不多。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 函数不能用exec执行,存储过程要用exec执行. 存储过程需要单独执行; 函数可以随处调用。 存储过程是保存起来的可以接受和返回用户提供的参数的 Transact-SQL 语句的集合。 可以创建一个过程供永久使用,或在一个会话中临时使用(局部临时过程),或在所有会话中临时使用(全局临时过程)。 也可以创建在 Microsoft® SQL Server™ 启动时自动运行的存储过程。 用户定义函数,它是返回值的已保存的 Transact-SQL 例程。用户定义函数不能用于执行一组修改全局数据库状态的操作。 与系统函数一样,用户定义函数可以从查询中唤醒调用。也可以像存储过程一样,通过 EXECUTE 语句执行。 函数中有些限制吧,不能执行动态SQL咯,不能用getdate()等等的,存储过程不能像函数那样可以直接返回一个表。 【SQL2005】一段代码,菜鸟求助 这个sql 语句怎么写? 【急!求救!!】设置了push subscription,又想更改表字段怎么办?提示说:发布的表不能更改,只能删除复制,然后重建复制吗? 一条日期语句优化问题 向高手求助! 存储过程的一个简单的问题 如何让 双主键的表 自动增长. 请问sql2000里哪个数据类型是自动编号?? 老大们。我刚才不小心误删除了一个很重要的表,里面有50w条数据,请问该怎么恢复啊? 求异构数据操作问题 还是多表关联问题,哪个效率高一些? update和insert语句使用问题,谢谢
函数可以随处调用。
存储过程是保存起来的可以接受和返回用户提供的参数的 Transact-SQL 语句的集合。
可以创建一个过程供永久使用,或在一个会话中临时使用(局部临时过程),或在所有会话中临时使用(全局临时过程)。
也可以创建在 Microsoft® SQL Server™ 启动时自动运行的存储过程。
用户定义函数,它是返回值的已保存的 Transact-SQL 例程。用户定义函数不能用于执行一组修改全局数据库状态的操作。
与系统函数一样,用户定义函数可以从查询中唤醒调用。也可以像存储过程一样,通过 EXECUTE 语句执行。
存储过程不能像函数那样可以直接返回一个表。