你能从一个函数返回的表中选择一个列值吗?

时间:2014-05-01 10:19:20

标签: sql sql-server sql-server-2005

如果我有这样的功能

dbo.GetTable(@myInteger) 

我可以从结果表中按名称选择列,并将它们分配给SQL Server 2005中后续函数中的变量吗?

或者在后续函数中创建临时表并使用

的结果填充它更有效
dbo.GetTable(@myInteger) 

这样你只需要调用上面的函数一次,而不是像

那样
DECLARE @IntegerOne Integer = dbo.GetTable(@myInteger).Column1
DECLARE @IntegerTwo Integer = dbo.GetTable(@myInteger).Column2
DECLARE @IntegerThree Integer = dbo.GetTable(@myInteger).Column3

2 个答案:

答案 0 :(得分:1)

不确定我的问题是否正确,对于表格功能,这将有效:

select
    @IntegerOne = Column1,
    @IntegerTwo = Column2,
    @IntegerThree = Column3
from dbo.GetTable(@myInteger)

答案 1 :(得分:1)

如果它是一个表值函数,你就可以像对待表一样对待它,你可以做类似......

DECLARE @IntegerOne Integer; 
DECLARE @IntegerTwo Integer;
DECLARE @IntegerThree Integer;

SELECT TOP 1                    --<-- To make sure only one row is returned
        @IntegerOne   = Column1
       ,@IntegerTwo   = Column2
       ,@IntegerThree = Column3
FROM dbo.GetTable(@myInteger)
--WHERE Clause if required