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 kein Feedback
Einen Kommentar hinterlassen

Ihre E-Mail-Adresse wird nicht auf dieser Seite angezeigt.
SchlechtExzellent
(Zeilenumbrüche werden zu <br />)
(For my next comment on this site)
(Allow users to contact me through a message form -- Your email will not be revealed!)
Dies ist ein Captcha Bild. Es wird benutzt, um Massenzugriffe von Robotern zu verhindern.
Bitte gib die Zeichen des obigen Bildes ein. (Groß/Kleinschreibung ist wichtig)
Trackback-Adresse für diesen Eintrag
Dies ist ein Captcha Bild. Es wird benutzt, um Massenzugriffe von Robotern zu verhindern.
Bitte gib die Zeichen des obigen Bildes ein. (Groß/Kleinschreibung ist wichtig)