Dynamisches SQL innerhalb einer Funktion

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.
Noch keine Bewertungen