扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:赛迪网 yashi 来源:天新网 2008年3月27日
关键字: Mssql SQL SQL Server 数据库
本文主要描述了如何确定是否将现有存储过程逻辑重新编写为用户定义函数。例如,如果希望直接从查询唤醒调用存储过程,可将代码重新打包为用户定义函数。
一般来说,如果存储过程返回一个(单个)结果集,则定义表值函数。如果存储过程计算标量值,则定义标量函数。
表值函数的条件
如果存储过程满足以下条件,则可作为重新编写为表值函数的很好的候选存储过程:
逻辑可在单个 SELECT 语句中表现,但它是存储过程而不是视图,只是由于需要参数。可使用内嵌表值函数处理这种情况。
不需要动态 EXECUTE 语句。
存储过程返回一个结果集。
存储过程的主要目的是生成要装载到临时表的中间结果,SELECT 语句随后将查询临时表。可使用表值函数编写 INSERT...EXEC 语句。例如,请看下面的序列:
|
可将存储过程 sp_getresults 重新编写为表值函数,如 fn_results(),这意味着可将上面的语句重新编写为:
|
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者