如何在表值函数中声明变量?在表值函数中声明变量
回答
有两种风格的表值函数。一个只是一个select语句,一个可以有更多的行而不仅仅是一个select语句。
这不能有一个变量:
create function Func() returns table
as
return
select 10 as ColName
你要做这样的代替:
create function Func()
returns @T table(ColName int)
as
begin
declare @Var int
set @Var = 10
insert into @T(ColName) values (@Var)
return
end
谢谢,这非常有用 –
第一个例子被称为“内联表值函数”,与多语句表值函数相比,它具有性能优势,即数据库服务器可以*用ITVF重新*查询*内联*到父查询中,实质上成为一个参数化的'VIEW',而MSTVF则更像一个不透明的存储过程(虽然与sprocs相比有其自身的优势)。内联函数应该优于MSTVF。如果您确实需要计算并存储中间值(例如复杂标量函数表达式的结果),则使用子查询。 – Dai
也许值得一提的是,如果你用来填充你想要设置的变量的结果在任何方面都是可以通用的,那么你可以考虑编写一个单独的函数来生成它。 这将允许您使用上述@Dai所描述的ITVF及其所有优点,同时仍将动态生成的值插入到函数中。我只是在上述解决方案的帮助下编写了一个函数(谢谢@MikaelEriksson!),它将其参数之一传递给一个辅助函数,以免我必须使用MSTVF表单。 – naughtilus
- 1. 在函数中声明变量
- 2. 在函数中声明静态变量
- 3. 在Javascript函数中声明变量
- 4. 在SQL函数中声明变量
- 5. 在Perl函数中声明变量
- 6. 声明变量值
- 7. C++中的函数和变量声明
- 8. 函数体中的Python变量“声明”
- 9. C++在变量前声明函数
- 10. 在函数之外声明变量
- 11. SQL函数 “声明标量变量”
- 12. 是否在变量冲击表现中声明函数?
- 13. C++函数声明常数变量
- 14. 在SQL中声明多个值变量
- 15. 变量/函数声明之前
- 16. javascript函数范围,变量声明
- 17. 将函数声明为变量
- 18. 自动声明函数/变量
- 19. 声明变量的函数二郎
- 20. 函数'yylex':'变量'未声明
- 21. 无法从PHP函数声明变量?
- 22. 堆栈变量或函数声明
- 23. 声明无值的变量
- 24. 变量声明和赋值
- 25. 在VBA中声明变量注册表?
- 26. C++变量声明将被视作一个函数声明
- 27. 在Fortran中声明变量
- 28. 在Ruby中声明变量?
- 29. 在DOJO中声明变量
- 30. 在flex中声明变量
内联或多语句?像* MSDN *描述他们? – gbn
@YogeshBhadauirya荒谬的“使用搜索引擎”响应的问题是* this *是搜索引擎指向的地方。一种无限的递归情况。最好删除页面或仅回答问题。 – Volvox
这个问题值得更多的爱:重新开放,接受下面的答案。它实际上*是一个真正的问题。 – Askolein