Announcement

Collapse
No announcement yet.

UDF und GetDate / MSSQL 2000

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • UDF und GetDate / MSSQL 2000

    Hi,
    <br>
    <br>ist das richtig, daß es keinen anderen Weg gibt mit GetDate in einer UDF zu arbeiten als GetDate als Funktionsparameter zu übergeben?
    <br>Bsp.:
    <br>meine_UDF(1, GetDate())
    <br>
    <br>Danke!
    <br>
    <br>mfg
    <br>PS

  • #2
    Hallo Patrick,<BR><BR>ja, das ist so. Du darfst in einer UDF nur Funktionen aufrufen die nicht deterministisch sind, die also bei jedem Aufruf mit den gleichen Parametern das gleiche Ergebnis zurück liefern. Bei GetDate() ist das natürlich nicht der Fall, deswegen darf es nicht benutzt werden.<BR>Ich könnte mir vorstellen, dass die Begründung z.B. da zu suchen ist:<BR>Du hast ein Feld vom Typ DateTime und willst mit deiner Funktion die Differenz zum aktuellen Zeitpunkt ermitteln. Wenn du den aktuellen Zeitpunkt nicht konstant hältst, also als konstanten Wert an die Funktion übergibst, sondern den aktuellen Zeitpunkt für jede Zeile mit Hilfe der Funktion neu ermittelst, werden die berechneten Differenzen bei gleichen Tabellenwerten wahrscheinlich unterschiedlich ausfallen. Bei sehr großen Tabellen kann das ziemlich große und böse Folgen haben.<BR><BR>Ob das nun wirklich der Hintergrund ist, weiß ich nicht. Das ist zumindest meine Vorstellung.<BR><BR>Ola

    Comment


    • #3
      Hallo Patrick,<BR><BR>Entschuldigung, es müssen natürlich deterministische Funktionen sein und keine nicht deterministischen. Es muss also heißen:<BR><BR>Du darfst in einer UDF nur Funktionen aufrufen die deterministisch sind, die also bei jedem Aufruf mit den gleichen Parametern das gleiche Ergebnis zurück liefern.<BR><BR>Sorry, Ola

      Comment


      • #4
        <br>Danke!
        <br>
        <br>mfg
        <br>P

        Comment

        Working...
        X