Vraag Functie

Status
Niet open voor verdere reacties.

da_nootje

Nieuwe gebruiker
Lid geworden
13 apr 2007
Berichten
2
Hallo,

ik heb volgende functie gemaakt:

Code:
ALTER FUNCTION sp_COALESCO_NAME_EMAILBERICHT ( @ID INT )

	

RETURNS VARCHAR(1000) AS BEGIN

DECLARE @p VARCHAR(1000) ;

           SET @p = '' ;

        SELECT @p = @p + ISNULL(P.voornaam + CASE WHEN P.tussenvoegsel IS NULL THEN ' ' ELSE ' ' + P.tussenvoegsel + ' ' END + P.achternaam,'') + ','

		FROM
				EmailberichtAanPersoon EP
			INNER JOIN
				Emailbericht E
			ON	
				EP.emailberichtId = E.emailberichtId
			INNER JOIN
				Persoon P
			ON
				EP.persoonId = P.persoonId
			WHERE E.emailberichtId = @ID 
			ORDER BY P.voornaam, P.achternaam

RETURN @p

END

Om het resultaat te bekijken:
Code:
SELECT 
	E.emailberichtId AS Emailbericht, 
	dbo.sp_COALESCO_NAME_EMAILBERICHT(E.emailberichtId ) AS Personen
FROM
	EmailberichtAanPersoon E

De functie geeft per emailbericht alle personen weer waar naar toe mail is gestuurd.

Nu is mijn vraag, is het mogelijk om bovenstaande functie generiek te maken, zodat ik deze functie ook bij andere koppeltabellen kan gebruiken.

Zo ja, hoe moet ik dat doen?

Groeten, Dennis
 
er zijn vast mogelijkheden om de boel generieker te maken, maar ik vraag me af hoe generiek je het wilt hebben.

De functie gebruikt nu een koppeltabel van emailberichten naar persoon. Een andere koppeltabel kan natuurlijk liggen tussen twee compleet andere tabellen, met ander joins, andere velden, andere tabelnamen, evt andere voorwaarden. En je gebruikt die andere koppeltabel wsl om andere dingen (1, meer?) op te zoeken.

Als je hier allemaal rekening mee wilt houden wordt het wel heel erg generiek. Dus mijn vraag is: kun je (evt aan de hand van een voorbeeld) aangeven wat je allemaal generiek wil maken aan de functie?

Grt,
Plagvreugd.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan