none
funzione creata dall'utente per campo calcolato RRS feed

  • Domanda

  • salve

    per necessità di parecchie viste vorrei creare una funzione per un campo calcolato.

    se volessi crearmi la funzione

    miaDATA(campoData) --> aggiungesse 2 gg alla data

    come devo fare?

    potete per favore farmi un esempio?

    GRAZIE

    venerdì 13 maggio 2016 08:15

Risposte

Tutte le risposte

  • Ciao,

    puoi fare così:

    select dateadd(d,2,campoData) AS MiaData
    from Tabella

    per maggiori info vedi: DATEADD

    Ciao
    Giorgio Rancati

    venerdì 13 maggio 2016 09:59
    Moderatore
  • Buongiorno,

    valuta bene l'impatto in termini di performance, prima di mettere una funzione in "parecchie" viste.

    Detto questo, io proverei così:

    CREATE FUNCTION dbo.udf_AddDays (@Input DATETIME, @Days smallint)
    RETURNS DATETIME
    AS
    BEGIN
      RETURN DATEADD(dd, @Days, @Input);
    END
    GO
    --provala
    select dbo.udf_AddDays(getdate(),2)


    venerdì 13 maggio 2016 10:09
  • Buongiorno,

    valuta bene l'impatto in termini di performance, prima di mettere una funzione in "parecchie" viste.

    Detto questo, io proverei così:

    CREATE FUNCTION dbo.udf_AddDays (@Input DATETIME, @Days smallint)
    RETURNS DATETIME
    AS
    BEGIN
      RETURN DATEADD(dd, @Days, @Input);
    END
    GO
    --provala
    select dbo.udf_AddDays(getdate(),2)


    grazie prima di tutto 2 domande al riguardo:

    - mi di pensare a mettere una funzione in parecchie viste: la mia domanda era proprio di creare una funzione e di mettera in che sezione?

    --> database --> programmabilità --> FUNZIONI --> funzioni di con valori di tabella?

    - cosa intendi di pensare a mettere una funzione in parecchie viste?


    venerdì 13 maggio 2016 16:06
  • grazie ma la mia idea era creare una funzione dell'utente (non so dove inserirla) e utilizzare tale funzione un alcune viste

    venerdì 13 maggio 2016 16:11
  • non c'è molta differenza tra i due suggerimenti di Giorgio e Luca. 

    alla fine della fiera devi sempre aggiungere un  pezzetto di codice nella select delle tue views quindi...


    Edoardo Benussi
    Microsoft MVP - Enterprise Mobility
    edo[at]mvps[dot]org


    lunedì 16 maggio 2016 12:38
    Moderatore
  • [...]grazie prima di tutto 2 domande al riguardo:

    - mi di pensare a mettere una funzione in parecchie viste: la mia domanda era proprio di creare una funzione e di mettera in che sezione?

    --> database --> programmabilità --> FUNZIONI --> funzioni di con valori di tabella?

    - cosa intendi di pensare a mettere una funzione in parecchie viste?


    Ciao, scusa il ritardo nella risposta :)

    Se implementi la funzione come quella che ti ho indicato, la troverai sotto Database/Programmability/Functions/Scalar-valued Functions...perdona ma ho SQL localizzato in inglese, sono sicuro che troverai subito l'orrida traduzione italiana.

    Per quanto riguarda la seconda domanda, intendo suggerirti semplicemente di controllare sempre le performance di una query/vista, quando decidi di introdurre una funzione per uno dei campi. Potresti avere performance notevolmente peggiori chiamando una funzione esterna (il mio esempio), rispetto che a espletarne il codice direttamente nella query principale (l'esempio di Giorgio).

    Se vuoi approfondire...

    lunedì 16 maggio 2016 16:29