Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

[SQL Server 2000] : Χρήση variables σε views

Îåêßíçóå áðü ôï ìÝëïò arish. Τελευταία δημοσίευση από το μέλος New Yorker στις 17-03-2008, 17:36. Υπάρχουν 4 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  17-03-2008, 10:08 40909

    [SQL Server 2000] : Χρήση variables σε views

    Καλημέρα!

    Ήθελα να ρωτήσω αν γνωρίζει κανείς εάν είναι εφικτή η χρήση variables μέσα σε ένα sql view όπως χρησιμοποιούνται σε κάθε sql query (με declare & set).

    Ευχαριστώ!
  •  17-03-2008, 12:01 40916 σε απάντηση της 40909

    Απ: [SQL Server 2000] : Χρήση variables σε views

    Τα variables δεν ορίζονται σε queries αλλά σε code blocks όπως ένα batch από εντολές, ένα stored procedure ή ένα function. Ένα query είναι μία και μόνη εντολή SELECT, UPDATE, INSERT κλπ. Ένα view τώρα, είναι απλά ένα SELECT query οπότε δεν μπορεί να δεχθεί παραμέτρους. Αντί για το query όμως μπορείς να φτιάξεις ένα inline table valued function, π.χ.

    CREATE FUNCTION dbo.ufn_QuarterlySalesByStore
    ( @StoreID int )
    RETURNS table
    AS
    RETURN (
    SELECT *
    FROM SalesDB.dbo.vw_QuarterlySales
    WHERE StoreID = @StoreID
    )


    SELECT *
    FROM ufn_QuarterlySalesByStore(14432)


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  17-03-2008, 15:35 40926 σε απάντηση της 40909

    Απ: [SQL Server 2000] : Χρήση variables σε views

    Γιατί θέλεις να βάλεις variables σε view?
    Τι προσπαθείς να κάνεις;

    Δώσε μας λίγες λεπτομέριες.

    Στέφανος
    New Yorker

    Στέφανος
    New Yorker
  •  17-03-2008, 16:28 40935 σε απάντηση της 40926

    Απ: [SQL Server 2000] : Χρήση variables σε views

    Βασικά χρησιμοποιώ κάποια πολύπλοκα βήματα μέσα σε 1 view για να υπολογίσω κάποια πεδία με cases και select. για παράδειγμα...

    a =
        case
           when person.id in (select id from persons where.....) then 'A1'
           when person.id not in .... and .... then 'A2'
           else 'A3'
        end


    κάνω ας πουμε κατι σαν αυτο το ψευτοsql. και θέλω σε περίπτωση που τπτ από αυτά δεν ισχύει το a να παρει μια default τιμή και να χρησιμοποιούσα μία μεταβλήτη ως εξής...

    declare @var
    @var =
        case
           when person.id in (select id from persons where.....) then 'A1'
           when person.id not in .... and .... then 'A2'
           else 'A3'
        end

    a =
        case
           when @var is not null then var else 'A99'
        end

  •  17-03-2008, 17:36 40937 σε απάντηση της 40935

    Απ: [SQL Server 2000] : Χρήση variables σε views

    Arish,

    Όπως προαναφέρθηκε, δεν μπορείς να το κάνεισ αυτό με views.

    Πρέπει ή να χρησιμοποιήσεις stored procedures και temp tables ή να μεταφέρεις τον κώδικα στον client.

    Εγώ, κάθε φορά που έχω τέτοια προβλήματα να λύσω, χρησιμοποιώ το database μόνο για να πάρω τα data.
    Έπειτα, κάνω την επεξεργασία στον client, όπου έχω την δύναμη της γλώσσας (C#, VB.Net, etc).

    Στέφανος
    New Yorker

    Στέφανος
    New Yorker
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems