【问题标题】:Use dynamic SQL statement at SQL Server 2008 in tablevalue function [duplicate]在表值函数中使用 SQL Server 2008 中的动态 SQL 语句 [重复]
【发布时间】:2013-04-04 18:13:01
【问题描述】:

有没有办法创建一个自定义函数,使用动态创建的 SQL 语句返回一个表?

到目前为止,我尝试过类似

ALTER function [dbo].[Test2] (@Mandant smallint)
RETURNS
@Ergebnis TABLE ([Kundennummer] int,[Suchbegriff] nvarchar(20))
AS
BEGIN
    DECLARE @curTable cursor
    DECLARE @str nvarchar(1024)
    DECLARE @Kundennummer int;
    DECLARE @Suchbegriff nvarchar(20);
    SET @str = 'set @curTable = CURSOR FOR SELECT KdNr, Match FROM ADR_030 where KdNr <> 0; OPEN @curTable' 
    EXEC sp_executesql @str, N'@curTable cursor OUTPUT', @curTable OUTPUT 
    fetch next from @curTable into @Kundennummer, @Suchbegriff;
    WHILE @@FETCH_STATUS = 0
    BEGIN
        insert into @Ergebnis values (@Kundennummer, @Suchbegriff)
        FETCH NEXT FROM @curTable into @Kundennummer, @Suchbegriff;
    END;
    close @curTable;
    deallocate @curTable;   
return
end

但是在执行函数的时候却报错了。

希望有人可以在这里帮助我。

谢谢,

克里斯

【问题讨论】:

标签: sql sql-server-2008 tsql user-defined-functions table-valued-parameters


【解决方案1】:

您可以为此使用 CLR。但是,在纯 T-SQL 中无法做到这一点。

【讨论】:

  • 至少不在函数中。例如,在存储过程中是可能的。
猜你喜欢
  • 1970-01-01
  • 2016-02-29
  • 1970-01-01
  • 1970-01-01
  • 2010-11-10
  • 1970-01-01
  • 2013-02-11
  • 1970-01-01
  • 2018-06-01
相关资源
最近更新 更多