1

動的に作成された 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

しかし、関数を実行するとエラーが発生します。

誰かがここで私を助けてくれることを願っています。

ありがとう、

クリス

4

1 に答える 1

0

そのためにCLRを使用できます。ただし、プレーンな T-SQL でこれを行う方法はありません。

于 2013-04-04T18:20:17.070 に答える