【问题标题】:How can I take values From a table which is output of a function in a stored procedure如何从作为存储过程中函数输出的表中获取值
【发布时间】:2010-11-16 03:36:04
【问题描述】:

这是一个存储过程中的语句,它给出一个包含日期的表输出 dt:

SELECT [Dt] 
  FROM dbo.fnGetDatesforWeekDays(@dafromDate, @datoDate, @WKDAYS) AS DAT

我怎样才能一一获取这些日期值?

【问题讨论】:

  • “一个接一个”?您能否提供更多详细信息,举例说明您为何需要此功能?

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


【解决方案1】:

如果您需要一个一个地处理它们,您需要使用游标并循环游标:

DECLARE @Dt DATETIME

DECLARE date_cursor CURSOR
FOR
SELECT [Dt]  
  FROM dbo.fnGetDatesforWeekDays(@dafromDate, @datoDate, @WKDAYS) AS DAT 

OPEN date_cursor

FETCH NEXT FROM date_cursor INTO @Dt

WHILE @@FETCH_STATUS <> -1
BEGIN
--do your processing here

FETCH NEXT FROM date_cursor INTO @Dt

END

CLOSE date_cursor

DEALLOCATE date_cursor

只要对评论所在的每个日期做任何你想做的事情,你就可以开始了。

【讨论】:

  • 我创建了一个临时表并添加了一个标识字段
【解决方案2】:

是的,你可以(光标,循环,..).. 但你不应该。请发布您想要完成的任务,并且很可能有更好的、基于集合的解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 2017-02-21
    • 1970-01-01
    • 2017-07-24
    相关资源
    最近更新 更多