Καλώς ορίσατε στο
dotNETZone.gr
-
Σύνδεση
|
Εγγραφή
|
Βοήθεια
σε
SQL Server (και άλλες databases) (συζήτηση)
Άλλα θέματα development (ομάδα)
(όλο το δικτυακό τόπο)
Αρχική σελίδα
Ιστολόγια
Συζητήσεις
Εκθέσεις Φωτογραφιών
Αρχειοθήκες
dotNETZone.gr
»
Άλλα θέματα development
»
SQL Server (και άλλες database...
»
Απ: Passing coma delimeted parameters to stored procedure
Passing coma delimeted parameters to stored procedure
Îåêßíçóå áðü ôï ìÝëïò
zeon
.
Τελευταία δημοσίευση από το μέλος
raPhaeL
στις 29-09-2005, 17:15. Υπάρχουν 4 απαντήσεις.
Tweet
Ταξινόμηση Δημοσιεύσεων:
Παλαιότερο προς νεότερο
Νεότερο προς παλαιότερο
Προηγούμενο
Επόμενο
29-09-2005, 15:12
5797
zeon
Μέλος από τις 29-06-2005
Athens - Greece
Δημοσιεύσεις 196
Passing coma delimeted parameters to stored procedure
Γεια χαρά. Το ερώτημά μου είναι το εξής. Θέλω να περάσω σε μια stored procedure
ένα string από ids. H stored procedure στην ουσία κάνει select βάσει των ids. Σκέφτηκα
μια υλοποίηση με temporary table, αλλά αν έχω πολλά ids από πολλά tables
θα το γονατίσω. Θέλω να αποφύγω το απλό select. Μπορεί κανείς να βοηθήσει?
Αναφορά Κακοποίησης
29-09-2005, 15:22
5798
σε απάντηση της
5797
patrick
Μέλος από τις 05-06-2004
Π. Φάληρο
Δημοσιεύσεις 410
Απ: Passing coma delimeted parameters to stored procedure
Αν και δεν καταλαβαίνω τι εννοείς όταν λες "πολλά ids από πολλά tables", ένας απλός τρόπος να το κάνεις είναι ο ακόλουθος:
exec('SELECT * FROM table WHERE ID in (' + @strIDS + ')')
Αν θες να κάνεις κάτι πιο πολύπλοκο, τότε μάλλον πρέπει να εξηγήσεις λιγο καλύτερα τι είναι αυτό που θες να πετύχεις... :)
Patrick
Αναφορά Κακοποίησης
29-09-2005, 15:35
5800
σε απάντηση της
5798
zeon
Μέλος από τις 29-06-2005
Athens - Greece
Δημοσιεύσεις 196
Απ: Passing coma delimeted parameters to stored procedure
Εννοώ ότι φτιάχνω μια procedure που κάνει select από πολλά tables με joins βάσει βέβαια κλειδιών. Θέλω να περάσω μέσα στην procedure strings με τιμές των ids.
Πχ ας πούμε έχω
select table1.name1, table2.name2, table3.name3
from table1
inner join .....
inner join...
Where table1.table2_id in (..)
and table2.table3_id in (...)
μέσα στην procedure. Θέλω στις παρενθέσεις να περάσω strings από τιμές των ids πχ. 1,2,3
Το πρόβλημα είναι πως μου χτυπάει "Error converting data type varchar to numeric". Μπορώ να χρησιμοποιήσω temorary tables και να εκτελεστεί. Αλλά αν τα strings που θα περάσω είναι πολλά πολύ φοβάμαι πως η απόδοση θα είναι χάλια.
Ελπίζω να έγινα λίγο πιο κατανοητός τώρα. Ε?
Αναφορά Κακοποίησης
29-09-2005, 16:38
5802
σε απάντηση της
5800
patrick
Μέλος από τις 05-06-2004
Π. Φάληρο
Δημοσιεύσεις 410
Απ: Passing coma delimeted parameters to stored procedure
Μπορείς λοιπόν να περνάς ένα string της μορφής:
"1,2,3@5,7,3@6,9,11"
Κάνεις split στο @ και τα επιμέρους strings τα βάζεις μέσα στο query σου με τον τρόπο που έγραψα προηγουμένως...
Patrick
Αναφορά Κακοποίησης
29-09-2005, 17:15
5803
σε απάντηση της
5797
raPhaeL
Μέλος από τις 07-06-2004
Δημοσιεύσεις 85
Απ: Passing coma delimeted parameters to stored procedure
Δές και το :
Δυναμικό WHERE IN() χωρίς δυναμικη SQL
Sex is like programing; One mistake, and you will have to support it for the rest of your life…
Αναφορά Κακοποίησης