1
有什麼方法可以創建一個自定義函數,該函數使用動態創建的SQL語句返回一個表?在表值函數中使用SQL Server 2008上的動態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,對不起。 – 2013-04-04 18:17:28
[從函數調用動態SQL]的可能重複(http://stackoverflow.com/questions/9607935/call-dynamic-sql-from-function);另請參見[在SQLServer 2005函數中執行動態SQL](http://stackoverflow.com/questions/150552) – mellamokb 2013-04-04 18:24:17