<?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>Απ: Triggers - Worst Case Scenario</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/42976.aspx</link><pubDate>Thu, 19 Jun 2008 19:11:47 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:42976</guid><dc:creator>manosB</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/42976.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=42976</wfw:commentRss><description>&lt;b&gt;ΜΗΝ&amp;nbsp; &lt;/b&gt;υλοποιείς business logic με Triggers. Θα το μετανιώσεις κάποια στιγμή. Δυστυχώς μιλάω από προσωπική πείρα. Ειδικά το .net σου δίνει τόσες δυνατότητες, δεν νομίζω ότι χρειάζεται να το κάνεις αυτό. &lt;br&gt;&lt;br&gt;</description></item><item><title>Απ: Triggers - Worst Case Scenario</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/42973.aspx</link><pubDate>Thu, 19 Jun 2008 17:57:45 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:42973</guid><dc:creator>Δημήτρης Μπούνδρης</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/42973.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=42973</wfw:commentRss><description>&lt;P&gt;Στην ORACLE μπορείς να ορίσεις τον Trigger ως &lt;STRONG&gt;AUTONOMOUS_TRANSACTION&lt;/STRONG&gt;&amp;nbsp;το οποίο δίνει στον Trigger τη δυνατότητα να εκτελέσει Commit ή Rollback χωρίς να επηρεάζει το εξωτερικό transaction στο οποίο ανήκει(αυτό μπορέι να κάνει και rollback μετά). &lt;/P&gt;
&lt;P&gt;Σε αυτή την περίπτωση τα πράγματα είναι λιγάκι μπερδεμένα.&lt;/P&gt;</description></item><item><title>Απ: Triggers - Worst Case Scenario</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/41593.aspx</link><pubDate>Thu, 17 Apr 2008 22:12:59 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:41593</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/41593.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=41593</wfw:commentRss><description>&lt;P&gt;&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="http://www.dotnetzone.gr/cs/Themes/default/images/icon-quote.gif"&gt; &lt;strong&gt;M1ke:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;BR&gt;Σκεφτόμουν ότι οι triggers είναι μια αρκετά δομημένη προσέγγιση για την ακεραιότητα της βάσης, οπότε και αναρωτιέμαι για το ακόλουθο σενάριο (σε SQL Server 2005 SP2):&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;/P&gt;
&lt;P&gt;Κατ' εμέ οι triggers αποτελούν την&amp;nbsp;τελευταία λύση στο θέμα της ακεραιότητας. Τσακίζουν το scalbility...&lt;BR&gt;&lt;BR&gt;&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="http://www.dotnetzone.gr/cs/Themes/default/images/icon-quote.gif"&gt; &lt;strong&gt;M1ke:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;Έχουμε στη βάση ένα trigger που εκτελείται on update ενός πίνακα, πχ CUSTOMER.&lt;BR&gt;Εκτελούμε μία stored procedure που κάνει update τον πίνακα CUSTOMER, και αμέσως μετά το commit της transaction το σύστημα πέφτει.&lt;BR&gt;Μετά το recovery θα εκτελεστεί ο trigger?&lt;BR&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;/P&gt;
&lt;P&gt;Κατά το recovery λαμβάνεται υπόψην η κατάσταση του κάθε transaction που έχει καταγραφεί στο transaction log αλλά &lt;STRONG&gt;δεν&lt;/STRONG&gt; έχει περάσει στη βάση. Άρα, αν στο transaction log έχει καταγραφεί ένα commited transaction, γίνονται "redo" οι αντίστοιχες ενέργειες. Αν έχει καταγραφεί ένα uncommited ή rolled back transaction, γίνοται "undo" αντίστοιχα.&amp;nbsp;Τα ίδια ισχύουν και για ό,τι κάνει ο trigger. Όπως και να έχει&amp;nbsp;όμως, ο trigger αποτελεί - implicitly -&amp;nbsp;τμήμα του transaction&amp;nbsp;που τον έχει ξεκινήσει, άρα το παράδειγμά σου δεν υφίσταται &lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-1.gif" alt="Smile" /&gt;&amp;nbsp;Δηλαδή&amp;nbsp;αν έχει γίνει commit&amp;nbsp;το transaction,&amp;nbsp;πάει να πει ότι&amp;nbsp;θα έχει τελειώσει&amp;nbsp;τη δουλειά του ο trigger.&amp;nbsp;&lt;/P&gt;</description></item><item><title>Triggers - Worst Case Scenario</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/41589.aspx</link><pubDate>Thu, 17 Apr 2008 21:28:13 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:41589</guid><dc:creator>M1ke</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/41589.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=41589</wfw:commentRss><description>Καλησπέρα σε όλους!&lt;br&gt;&lt;br&gt;Σκεφτόμουν ότι οι triggers είναι μια αρκετά δομημένη προσέγγιση για την ακεραιότητα της βάσης, οπότε και αναρωτιέμαι για το ακόλουθο σενάριο (σε SQL Server 2005 SP2):&lt;br&gt;&lt;br&gt;Έχουμε στη βάση ένα trigger που εκτελείται on update ενός πίνακα, πχ CUSTOMER.&lt;br&gt;Εκτελούμε μία stored procedure που κάνει update τον πίνακα CUSTOMER, και αμέσως μετά το commit της transaction το σύστημα πέφτει.&lt;br&gt;Μετά το recovery θα εκτελεστεί ο trigger?&lt;br&gt;</description></item></channel></rss>