<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>SQL Server (και άλλες databases)</title><link>https://www.dotnetzone.gr:443/cs/forums/28/ShowForum.aspx</link><description>Θέματα που αφορούν τον SQL Server (7.0, 2000, 2005) αλλά και Oracle, Access, DB2, MySQL, κλπ.</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Re: Παραμετρικό πέρασμα table σε stored procedure</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/3509.aspx</link><pubDate>Sat, 16 Jul 2005 05:49:46 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:3509</guid><dc:creator>Χρήστος Γεωργακόπουλος</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/3509.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=3509</wfw:commentRss><description>&lt;BLOCKQUOTE&gt;&lt;table width="85%"&gt;&lt;tr&gt;&lt;td class="txt4"&gt;&lt;img src="/forums/Themes/default/images/icon-quote.gif"&gt;&amp;nbsp;&lt;strong&gt;pkanavos wrote:&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="quoteTable"&gt;&lt;table width="100%"&gt;&lt;tr&gt;&lt;td width="100%" valign="top" class="txt4"&gt; &lt;p&gt;Η χύμα SQL είναι σχεδόν πάντα δείγμα ότι δεν έχει σχεδιαστεί σωστά η βάση...&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/BLOCKQUOTE&gt;&lt;br /&gt;&lt;br /&gt;Βρε, ξου... με έθιξες τώρα.... &lt;img src="/forums//emoticons/emotion-4.gif" alt="Stick out tongue" /&gt;</description></item><item><title>Re: Παραμετρικό πέρασμα table σε stored procedure</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/3493.aspx</link><pubDate>Fri, 15 Jul 2005 19:58:31 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:3493</guid><dc:creator>vec</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/3493.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=3493</wfw:commentRss><description>Είμαστε χαμένοι απο χέρι δηλαδή ε; Σε περίπτωση που η κλήση γίνει με το ίδιο όνομα πίνακα (ίδια τιμή στην παράμετρο δηλαδή), πάλι θα γίνει recompile το statement; Τα keep plan ή with no recompile κάνουν καμία διαφορά σε αυτές τις περιπτώσεις;&lt;br /&gt;</description></item><item><title>Re: Παραμετρικό πέρασμα table σε stored procedure</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/3484.aspx</link><pubDate>Fri, 15 Jul 2005 16:45:03 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:3484</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/3484.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=3484</wfw:commentRss><description>&lt;p&gt;Αν περάσεις το όνομα του πίνακα δεν θα γίνει τίποτα cached. Το cached plan περιέχει πληροφορία πως να γίνει η αναζήτηση σε συγκεκριμμένους πίνακες. Αν τους αλλάξεις, είναι άχρηστο και το statement ξαναγίνεται compile. Δεν έχει σημασία αν θα χρησιμοποιήσεις την EXEC ή την sp_executesql, caching δεν θα παίξει.&lt;br /&gt;Και να μην ξεχνάμε, ότι θα πρέπει να δώσεις permissions στον τελικό χρήστη κατευθείαν πάνω στους πίνακες &lt;img src="/forums//emoticons/emotion-17.gif" alt="[:-*]" /&gt; για να δουλέψουν και τα δύο. &lt;br /&gt;&lt;br /&gt;Η χύμα SQL είναι σχεδόν πάντα δείγμα ότι δεν έχει σχεδιαστεί σωστά η βάση και ότι κάπου κρύβονται και πολλά άλλα προβλήματα.&lt;/p&gt;</description></item><item><title>Re: Παραμετρικό πέρασμα table σε stored procedure</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/3473.aspx</link><pubDate>Fri, 15 Jul 2005 01:46:49 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:3473</guid><dc:creator>Aris</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/3473.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=3473</wfw:commentRss><description>&lt;p&gt;&lt;font style="BACKGROUND-COLOR: #efefef"&gt;Καλύτερη πιθανότητα επαναχρησιμοποίησης του execution plan (που το διατηρεί, μήπως και ξανακάτσει - κονώς, gets cached&lt;img src="/forums//emoticons/emotion-1.gif" alt="Smile" /&gt;)&lt;br /&gt;&lt;br /&gt;Άρης&lt;br /&gt;&lt;/font&gt;&lt;/p&gt;</description></item><item><title>Re: Παραμετρικό πέρασμα table σε stored procedure</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/3470.aspx</link><pubDate>Fri, 15 Jul 2005 00:56:02 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:3470</guid><dc:creator>vec</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/3470.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=3470</wfw:commentRss><description>Όλοι κάνουμε πράγματα που δε μας αρέσουν. Βιαστικές αποφάσεις, το θέλω και το θέλω χτες κτλ. Σίγουρα όμως μερικές φορές τα παραμετρικά ονόματα πινάκων βολεύουν, και μάλιστα βολεύουν πολύ!&lt;br /&gt; &lt;br /&gt; Παρ' όλα αυτά, η MS λέει ότι η χρήση της sp_executesql είναι προτιμότερη από την exec, επειδή execution plan μπλα μπλα, optimizer μπλα μπλα και αν πω ότι τα κατάλαβα όλα, ψέματα θα πω. Αν κάποιος μπορούσε να εξηγήσει ακριβώς πως δουλεύει ο optimiser σε αυτές τις περιπτώσεις.......&lt;br /&gt;</description></item><item><title>Re: Παραμετρικό πέρασμα table σε stored procedure</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/3466.aspx</link><pubDate>Thu, 14 Jul 2005 22:19:09 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:3466</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/3466.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=3466</wfw:commentRss><description>Φτού φτου φτου! Ξού ξου ξου! Εδώ συζητάμε πως να αποφύγουμε το χύμα SQL! Είτε με exec, είτε με sp_executesql είναι το ίδιο σα να έφτιαχνες το statement στον client και να το έτρεχες κατευθείαν πάνω στους πίνακες.&lt;br /&gt;&lt;br /&gt;Όπως και να το κοιτάξεις, όταν αρχίζεις να ψάχνεις πως να περάσεις το όνομα του πίνακα σε ένα stored procedure κάτι πάει άσχημα, πολύ άσχημα, μα ΠΑΡΑ πολύ άσχημα με τη σχεδίαση της βάσης σου!&lt;br /&gt;&lt;br /&gt;Παράδειγμα: Στο navision κάποιοι πίνακες έχουν πρόθεμα το ... όνομα της βάσης! Έτσι δεν μπορείς να φτιάξεις ένα stored procedure και να το χρησιμοποιήσεις σε διαφορετικά installations, παρότι δεν έχει αλλάξει τίποτα εκτός από ... το όνομα του πίνακα! &lt;img src="/forums//emoticons/emotion-41.gif" alt="[+o(]" /&gt;</description></item><item><title>Re: Παραμετρικό πέρασμα table σε stored procedure</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/3464.aspx</link><pubDate>Thu, 14 Jul 2005 22:10:59 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:3464</guid><dc:creator>vec</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/3464.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=3464</wfw:commentRss><description>Μπορείς να δοκιμάσεις και την sp_executesql.....&lt;br /&gt;</description></item><item><title>Re: Παραμετρικό πέρασμα table σε stored procedure</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/562.aspx</link><pubDate>Fri, 03 Dec 2004 16:29:19 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:562</guid><dc:creator>georgiop</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/562.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=562</wfw:commentRss><description>&lt;p&gt;&lt;font style="BACKGROUND-COLOR: #efefef"&gt;Νομίζω με καλύψατε πλήρως, ευχαριστώ!&lt;/font&gt;&lt;/p&gt;</description></item><item><title>Re: Παραμετρικό πέρασμα table σε stored procedure</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/555.aspx</link><pubDate>Thu, 02 Dec 2004 03:37:56 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:555</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/555.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=555</wfw:commentRss><description>Δεν ξέρω αν υπάρχει οποιαδήποτε βάση δεδομένων που να μπορεί να περάσει σαν παράμετρο ένα πίνακα και μετά να τον χρησιμοποιήσει σε SQL statements. Η ίδια η ιδέα του stored procedure έρχεται σε αντίφαση με αυτό.&amp;nbsp;Όταν ένα stored procedure γίνεται compile αποθηκεύεται στη βάση το&amp;nbsp;execution plan για όλα τα statements που περιέχει. Το execution plan του κάθε statement εξαρτάται άμεσα από τους πίνακες που επηρρεάζει. Έτσι δεν είναι δυνατόν να φτιαχτεί execution plan για άγνωστο πίνακα. Σκέψου το σα να περνάς ένα object σαν παράμετρο σε ένα C# method και μετά να προσπαθείς να καλέσεις μεθόδους του ICollection επάνω του.&lt;br /&gt;&lt;br /&gt;Αν θέλεις οπωσδήποτε να πάρεις το count μέσα από ένα stored procedure, θα πρέπει να χρησιμοποιήσεις το EXEC όπως είπε και ο Patrick. Αυτή η λύση όμως είναι ισοδύναμη με το να γράψεις το Select κατευθείαν μέσα στον κώδικά σου χωρίς να καλέσεις το stored procedure. Αυτή η λύση είναι καλή αν θες το count σε λίγα σημεία.&lt;br /&gt;&lt;br /&gt;Αν τώρα θες να χρησιμοποιήσεις πολλούς πίνακες ή αν το count χρησιμοποιείται συχνά, θα μπορούσες να χρησιμοποιήσεις ένα code generator για να δημιουργήσεις ένα stored procedure για κάθε πίνακα.</description></item><item><title>Re: Παραμετρικό πέρασμα table σε stored procedure</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/553.aspx</link><pubDate>Wed, 01 Dec 2004 18:24:29 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:553</guid><dc:creator>patrick</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/553.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=553</wfw:commentRss><description>Πρέπει να χρησιμοποιήσεις την EXEC:&lt;br /&gt; &lt;br /&gt; &lt;font face="Courier New"&gt;EXEC ('SELECT COUNT(*) FROM ' + @tablename)&lt;br /&gt; &lt;/font&gt;&lt;br /&gt;</description></item><item><title>Παραμετρικό πέρασμα table σε stored procedure</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/552.aspx</link><pubDate>Wed, 01 Dec 2004 17:37:27 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:552</guid><dc:creator>georgiop</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/552.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=552</wfw:commentRss><description>&lt;p&gt;&lt;font style="BACKGROUND-COLOR: #efefef"&gt;Υπάρχει τρόπος να γίνει κάτι τέτοιο στον SQL Server?&lt;br /&gt;&lt;br /&gt;CREATE PROCEDURE dbo.generic_table_count&amp;nbsp;&lt;br /&gt;&amp;nbsp;@tablename varchar(255)&lt;br /&gt;AS&lt;br /&gt;&amp;nbsp;SELECT COUNT(*) FROM @tablename&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;(Το παραπάνω δημιουργεί syntax error.)&lt;br /&gt;&lt;/font&gt;&lt;/p&gt;</description></item></channel></rss>