<?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: Πως θα αναφερθώ στο resultset ενός Select Statement μέσα σε ένα sp?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/2195.aspx</link><pubDate>Wed, 25 May 2005 01:42:56 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:2195</guid><dc:creator>axaros</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/2195.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=2195</wfw:commentRss><description>&lt;p&gt;&lt;font style="BACKGROUND-COLOR: #efefef"&gt;Παιδιά σας ευχαριστώ θερμά !!!!!!&lt;/font&gt;&lt;/p&gt;</description></item><item><title>Re: Πως θα αναφερθώ στο resultset ενός Select Statement μέσα σε ένα sp?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/2192.aspx</link><pubDate>Wed, 25 May 2005 00:39:40 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:2192</guid><dc:creator>cap</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/2192.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=2192</wfw:commentRss><description>Χαχα! Εγώ το είπα, ΑΝΤΙΓΡΑΦΩ από το BOL! &lt;img src="/forums/emoticons/emotion-1.gif" alt="Smile" /&gt;&lt;br /&gt;&lt;br /&gt;Τα χειρότερα δυνατά παραδείγματα &lt;img src="/forums/emoticons/emotion-1.gif" alt="Smile" /&gt;&lt;br /&gt;</description></item><item><title>Re: Πως θα αναφερθώ στο resultset ενός Select Statement μέσα σε ένα sp?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/2191.aspx</link><pubDate>Wed, 25 May 2005 00:35:12 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:2191</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/2191.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=2191</wfw:commentRss><description>&lt;p&gt;&lt;font style="BACKGROUND-COLOR: #efefef"&gt;Γαβ, γαβ, γαβ! Δεν υπάρχει λόγος να φτιάξεις νέο πίνακα, μπορείς να επιστρέψεις το αποτέλεσμα αμέσως με inline-table function. Σε αυτή την περίπτωση ο optimizer θα αντικαταστήσει το κείμενο του query (όπως με ένα view) και θα χρησιμοποιήσει ό,τι indexes υπάρχουν. &lt;br /&gt;&lt;/p&gt;&lt;pre class="source"&gt;&amp;nbsp;&lt;/pre&gt; &lt;p&gt;&lt;font style="BACKGROUND-COLOR: #dcdcdc" face="Lucida Console"&gt;CREATE FUNCTION LargeOrderShippers( @FreightParm money ) &lt;br /&gt;RETURNS TABLE &lt;br /&gt;AS&lt;br /&gt;RETURN &lt;br /&gt;(SELECT S.ShipperID, S.CompanyName, O.OrderID, O.ShippedDate, O.Freight FROM Shippers AS S INNER JOIN Orders AS O ON S.ShipperID = O.ShipVia WHERE O.Freight &amp;gt; @FreightParm)&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font style="BACKGROUND-COLOR: #dcdcdc" face="Lucida Console"&gt;&lt;/font&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Re: Πως θα αναφερθώ στο resultset ενός Select Statement μέσα σε ένα sp?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/2190.aspx</link><pubDate>Wed, 25 May 2005 00:08:48 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:2190</guid><dc:creator>cap</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/2190.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=2190</wfw:commentRss><description>&lt;p&gt;&lt;font style="BACKGROUND-COLOR: #efefef"&gt;Το ξέρω οτι ο Παναγιώτης θα με...καθαρίσει με αυτό που θα σου πω, μια και απο performance δεν είναι ο,τι το καλύτερο, αλλά θα μπορούσες να χρησιμοποιήσεις μια table-valued function που να σου επιστρέφει το πρώτο resultset.&lt;br /&gt;&lt;br /&gt;Το πως το κάνεις φαίνεται παρακάτω (αντιγράφω από το books online):&lt;br /&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;CREATE FUNCTION LargeOrderShippers ( @FreightParm money )&lt;br /&gt;RETURNS @OrderShipperTab TABLE&lt;br /&gt;&amp;nbsp;&amp;nbsp; (&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ShipperID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ShipperName&amp;nbsp;&amp;nbsp; nvarchar(80),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; OrderID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ShippedDate&amp;nbsp;&amp;nbsp; datetime,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Freight&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; money&lt;br /&gt;&amp;nbsp;&amp;nbsp; )&lt;br /&gt;AS&lt;br /&gt;BEGIN&lt;br /&gt;&amp;nbsp;&amp;nbsp; INSERT @OrderShipperTab&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT S.ShipperID, S.CompanyName,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O.OrderID, O.ShippedDate, O.Freight&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM Shippers AS S INNER JOIN Orders AS O&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ON S.ShipperID = O.ShipVia&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WHERE O.Freight &amp;gt; @FreightParm&lt;br /&gt;&amp;nbsp;&amp;nbsp; RETURN&lt;br /&gt;END&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;br /&gt;Μετά μπορείς να κάνεις π.χ. &lt;br /&gt;SELECT DISTINCT ShipperName FROM LargeOrderShippers(1500)&lt;br /&gt;&lt;br /&gt;Προσοχή: Το LargeOrderShippers είναι ακριβώς αυτό που ζητάς: Ενα resultset! Λειτουργεί με την ίδια λογική που λειτουργεί ένα view, μόνο που παίρνει παραμέτρους.&lt;br /&gt;&lt;br /&gt;Οπου στη θέση του 1500 θα μπορούσε να είναι κάποια variable που θα περνούσες είτε καλώντας το statement με τη μορφή stored procedure είτε υπολογίζοντάς το με βάση άλλα δεδομένα.&lt;br /&gt;&lt;br /&gt;Παναγιώτη, αν κάνω λάθος διορθώνεις ελεύθερα!&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;/font&gt;</description></item><item><title>Re: Πως θα αναφερθώ στο resultset ενός Select Statement μέσα σε ένα sp?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/2188.aspx</link><pubDate>Tue, 24 May 2005 21:51:17 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:2188</guid><dc:creator>axaros</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/2188.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=2188</wfw:commentRss><description>&lt;p&gt;&lt;font style="BACKGROUND-COLOR: #efefef"&gt;Γειά σου συνονόματε !!!&lt;br /&gt;Πρέπει να περάσω και κάποια παράμετρο στο πρώτο Select ... Αν το έφτιαχνα ξεχωριστό procedure;&lt;br /&gt;&lt;/font&gt;&lt;/p&gt;</description></item><item><title>Re: Πως θα αναφερθώ στο resultset ενός Select Statement μέσα σε ένα sp?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/2186.aspx</link><pubDate>Tue, 24 May 2005 21:35:03 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:2186</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/2186.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=2186</wfw:commentRss><description>&lt;p&gt;Πρέπει να χρησιμοποιήσεις cursors ή temporary πίνακα. Δεν μπορείς να περάσεις το resultset σε μια μεταβλητή και να του φερθείς σα να ήταν πίνακας. &lt;br /&gt;&lt;br /&gt;Αν θέλεις να το χρησιμοποιήσεις σαν πίνακα, ενσωμάτωσε το select στις εντολές που θέλεις να εκτελέσεις. Αν το χρησιμοποιείς συχνά, κάντο view. Μην ανησυχείς ότι ο SQL θα αναγκάζεται να κάνει πάλι και πάλι το ίδιο query. Αν έχεις ορίσει τα σωστά indexes, οι εντολές θα εκτελούνται πολύ γρήγορα, οπωσδήποτε γρηγορότερα από το αν χρησιμοποιούσες cursors ή temporary πίνακα. O optimizer του SQL Server σχεδόν πάντα κάνει καλύτερη δουλειά από τον προγραμματιστή.&lt;br /&gt;&lt;br /&gt;Στην σπάνια περίπτωση που δεν μπορείς να ενσωματώσεις το select στα άλλα query μπορείς να φτιάξεις ένα temporary πίνακα με την εντολή &lt;br /&gt;SELECT A, B, C&lt;br /&gt;INTO #MyTempTable&lt;br /&gt;WHERE ...&lt;br /&gt;&lt;br /&gt;Ο πίνακας αυτός θα παραμείνει όσο είσαι συνδεδεμένος&lt;br /&gt;&lt;br /&gt;Στην ΠΑΡΑ ΠΟΛΥ ΣΠΑΝΙΑ περίπτωση που πρέπει να εκτελέσεις περίπλοκο T-SQL κώδικα για κάθε row, θα πρέπει να χρησιμοποιήσεις cursor, με όλα τα προβλήματα που έχει αυτό (περίπλοκος προγραμματισμός, καθυστέρηση, κλείδωμα γραμμών). Σε αυτή την περίπτωση καλύτερα να εκτελέσεις τον κώδικα αυτό στον client.&lt;br /&gt;&lt;br /&gt;Και για να μη νομίσεις ότι υπερβάλλω, ή ότι δεν αξίζει να παλέψεις το query, σου λέω ότι η χρήση query αντί cursor μπορεί να μειώσει ένα procedure των 15 λεπτών ή της 1 ώρας στο 1 λεπτό. Ή και λιγότερο&lt;br /&gt;&lt;/p&gt;</description></item><item><title>Πως θα αναφερθώ στο resultset ενός Select Statement μέσα σε ένα sp?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/2181.aspx</link><pubDate>Tue, 24 May 2005 20:57:14 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:2181</guid><dc:creator>axaros</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/2181.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=2181</wfw:commentRss><description>&lt;p&gt;&lt;font style="BACKGROUND-COLOR: #efefef"&gt;Γεια σας παιδιά !!!!&lt;br /&gt;Πως μπορώ να αναφερθώ στο resultset ενός Select statement μέσα σε ένα sp ώστε να το χρησιμοποιήσω στην συνέχεια για να κάνω κάποιο άλλο ;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;/p&gt;</description></item></channel></rss>