[SQL]Functions

Pagina: 1
Acties:

  • RetepV
  • Registratie: Juli 2001
  • Laatst online: 05-06 15:39

RetepV

ALLES valt te repareren

Topicstarter
Effe een snelle vraag over Functions in MS SQL Server 2000.

Functions zijn handig omdat ze een tabel terug kunnen leveren aan de caller (een andere Stored Procedure of Function).

Iets wat met Stored Procedures blijkbaar niet kan, dwz. al je in een SP een andere SP aanroept kun je niet het resultaat van de aangeroepen SP in een tabel stoppen. Tenminste... Ik kan nergens vinden dat dat kan.

Wat zijn de grote nadelen van Functions? Zijn ze trager? Of is het in feite een gespecialiseerde vorm van een SP en geldt alles wat voor SP's geldt ook voor Functions? Ik heb wel een lijst gevonden van wat allemaal kan in een functie, maar niets waarmee ik een keuze kan maken voor een bepaalde oplossing.


Een andere vraag. Ik begin nu aardig wegwijs te raken in SQL (voornamelijk MS SQL Server 2000). Kan iemand mij een goed boek aanraden? Een boek die iets dieper in gaat op de mogelijkheden van SQL Server 2000 en wat vertelt over de voordelen/nadelen van bepaalde mogelijkheden.

Ik ben in feite C/C++ programmeur, met uitspattingen in het VB.NET bereik :+. Maar SQL Server is zo krachtig dat ik daar best wel wat meer kennis van zou mogen hebben. Zeker nu met .NET alles zo'n beetje aan elkaar geknoopt kan worden.

Macbook Pro


  • whoami
  • Registratie: December 2000
  • Laatst online: 17:38
Een functie kan je gebruiken binnen de SELECT list en zelfs binnen de FROM list (als het een functie is die een TABLE returned dan) van een query, dat kan je met een SP niet.

Eerdere versies van Sql Server dan Sql Server 2000 kennen geen user defined functies. Een functie is imo even snel of traag als een SP. Het DBMS gaat volgens mij net zoals bij een Stored Procedure een optimaal execution plan gaan bepalen voor de UDF.

Je zult vooral een keuze moeten maken op basis van functionaliteit. Als je iets wilt implementeren dat data terug-geeft, en dat je wilt gebruiken binnen een SELECT oid, dan maak je een functie.

https://fgheysels.github.io/


  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

UDF's zijn wel op bepaalde gebieden wel beperkter dan SP's.

Je kan bijvoorbeeld geen nondeterministische functies aanroepen:
SQL:
1
2
3
4
CREATE FUNCTION dbo.WillNotWork() RETURNS DATETIME AS
BEGIN
    RETURN GETDATE()
END


Tenminste, ik kan het niet :+

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

Overigens kan je de uitvoer van een SP best in een table proppen.
SQL:
1
2
INSERT INTO bla (foo, bar)
EXEC spGetBla

Today's subliminal thought is: