Dynamisches SQL innerhalb einer Funktion

By Frank Kalis

Posted on Aug 2, 2004 von in SQL Server

Dynamisches SQL kann nicht innerhalb einer Funktion ausgeführt werden. Genausowenig können Stored Procedures aufgerufen werden. Der einzige Workaround hier ist, eine andere Logik anzuwenden, um um den dynamischen Teil herumzukommen. So führt z.B. folgendes zu einem Fehler:

USE PUBS
GO
CREATE FUNCTION dbo.showMe(@tableName NVARCHAR(20))
RETURNS INT
AS
	BEGIN	
		DECLARE @stmt NVARCHAR(150)	
		DECLARE @rowcount INT
		SELECT @stmt = 'SELECT @count = COUNT(*) FROM ' + @tableName
		EXEC sp_executesql @stmt, N' @count int output', @rowcount OUTPUT
		RETURN @rowCount
	END
GO
SELECT dbo.showMe('authors')

Server: Nachr.-Nr. 557, Schweregrad 16, Status 2,  Prozedur showMe, Zeile 8
Nur Funktionen und erweiterte gespeicherte Prozeduren können innerhalb einer Funktion ausgeführt werden.
Tags: Tags:
Dieser Eintrag wurde eingetragen von und ist abgelegt unter SQL Server. Tags: , ,

Noch kein Feedback


Formular wird geladen...