<?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: AFTER INSERT TRIGGER</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/3747.aspx</link><pubDate>Fri, 22 Jul 2005 17:48:44 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:3747</guid><dc:creator>axaros</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/3747.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=3747</wfw:commentRss><description>&lt;P&gt;&lt;BLOCKQUOTE&gt;&lt;table width="85%"&gt;&lt;tr&gt;&lt;td class="txt4"&gt;&lt;img src="/cs/Themes/default/images/icon-quote.gif"&gt;&amp;nbsp;&lt;strong&gt;Aris 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;BR&gt;Υ.Γ. Καιρός να αναβθμιστείς σε "Ζωγράφος Μεγάλων Επιφανειών"&lt;BR&gt;&lt;img src="/cs/emoticons/emotion-4.gif" alt="Stick out tongue [:P]" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/BLOCKQUOTE&gt;&lt;/P&gt;
&lt;P&gt;Το παλεύω ... Το παλεύω ...&lt;/P&gt;</description></item><item><title>Απ:Re: AFTER INSERT TRIGGER</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/3735.aspx</link><pubDate>Fri, 22 Jul 2005 03:54:57 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:3735</guid><dc:creator>Aris</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/3735.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=3735</wfw:commentRss><description>&lt;P&gt;Μιά χαρά είναι &lt;img src="/cs/emoticons/emotion-1.gif" alt="Smile [:)]" /&gt;&lt;/P&gt;
&lt;P&gt;Εάν θεωρήσουμε ότι ο trigger ξεκινάει implicit transaction, τότε το "κλείνεις" με το commit και επομένως δεν έχεις rollback του insert σου (sic).&lt;/P&gt;
&lt;P&gt;Εάν λοιπόν αποτύχει το execute, δεν σε χαλάει &lt;img src="/cs/emoticons/emotion-11.gif" alt="Cool [H]" /&gt;&lt;/P&gt;
&lt;P&gt;Άρης&lt;/P&gt;
&lt;P&gt;Υ.Γ. Καιρός να αναβθμιστείς σε "Ζωγράφος Μεγάλων Επιφανειών"&lt;img src="/cs/emoticons/emotion-4.gif" alt="Stick out tongue [:P]" /&gt;&lt;/P&gt;</description></item><item><title>Απ:Re: AFTER INSERT TRIGGER</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/3715.aspx</link><pubDate>Thu, 21 Jul 2005 22:14:46 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:3715</guid><dc:creator>axaros</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/3715.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=3715</wfw:commentRss><description>&lt;P&gt;Το παρακάτω δούλεψε :&lt;/P&gt;
&lt;P&gt;CREATE TRIGGER tgrExport ON [dbo].[tblTest] &lt;BR&gt;FOR INSERT&lt;BR&gt;AS&lt;/P&gt;
&lt;P&gt;DECLARE @IId BigInt &lt;BR&gt;DECLARE @IDes nvarchar(50)&lt;/P&gt;
&lt;P&gt;SET @Iid = (Select Id From Inserted)&lt;BR&gt;SET @IDes = (Select Des From Inserted)&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT&gt;COMMIT TRANSACTION&lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR&gt;EXECUTE Laptop.[TEST DATABASE].dbo.spInsertTestValues @IId,@IDes&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;με linked server και RPC χωρίς να χάνω ποτέ την εγγραφή που ενεργοποιεί τον trigger.&lt;BR&gt;(Κάνω export σε άλλο instance,βάση σε άλλο μηχάνημα)&lt;BR&gt;Το ξέρω ότι δεν είναι ότι καλύτερο αλλά τι λέτε;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description></item><item><title>Re: AFTER INSERT TRIGGER</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/3612.aspx</link><pubDate>Tue, 19 Jul 2005 20:31:27 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:3612</guid><dc:creator>Aris</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/3612.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=3612</wfw:commentRss><description>&lt;BLOCKQUOTE&gt;&lt;table width="85%"&gt;&lt;tr&gt;&lt;td class="txt4"&gt;&lt;img src="/forums/Themes/MistBlue/images/icon-quote.gif"&gt;&amp;nbsp;&lt;strong&gt;axaros 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;&lt;font style="BACKGROUND-COLOR: #efefef"&gt;...&lt;br /&gt;&lt;br /&gt;Στην περίπτωση trigger&amp;nbsp;η ενημέρωση είναι άμεση αλλά εάν χρησιμοποιήσω ένα linked sevrver (σε άλλο instance) και distributed transaction δεν έχω τρόπο να εγγυηθώ ότι αν κάτι πάει στραβά η εγγραφή στον δίκο μου πίνακα (που ενεργοποιεί και τον trigger) δεν θα γίνει rollback ...&lt;br /&gt;&lt;br /&gt;Οπότε κατέληξα στη λύση trigger για ενημέρωση μίας άλλης βάσης στο τοπικό instance με τη χρήση SAVEPOINT.&lt;br /&gt;&lt;/font&gt;&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-2.gif" alt="Big Smile" /&gt;&lt;br /&gt;&lt;br /&gt;Ή στο ίδιο instance (αποτυχία σε ένα μηχάνημα) ή με την λύση που σου πρότεινα (messaging λογική σε δύο μηχανήματα).&lt;br /&gt;&lt;br /&gt;Άρης</description></item><item><title>Re: AFTER INSERT TRIGGER</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/3606.aspx</link><pubDate>Tue, 19 Jul 2005 19:26:34 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:3606</guid><dc:creator>axaros</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/3606.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=3606</wfw:commentRss><description>&lt;p&gt;&lt;font style="BACKGROUND-COLOR: #efefef"&gt;Άρη,&lt;br /&gt;δεν έχεις άδικο όσον αφορά την χρήση της ίδιας βάσης ... Φυσικά θα μπορούσε ο συνεργάτης μου να διαβάζει κατευθείαν από το δικό μου σύστημα τις unexported εγγραφές τις οποίες και χρειάζεται για να τις εμφανίσει στο ευρετήριο του και με μία batch διαδικασία ή ένα service που τρέχει ανά x χρονικά διαστήματα να "πέφτουν" οι εγγραφές στη δική του βάση και να μαρκάρονται σαν exported στη δική μου.&lt;br /&gt;&lt;br /&gt;Δυστηχώς για άλλους λόγους οι συγκεκριμένες προτάσεις δεν ήταν αποδεκτές ...&lt;br /&gt;Εν ολίγοις ξέχασε τες.&lt;br /&gt;&lt;br /&gt;Στην περίπτωση του serviced component αυτό που γινόταν ήταν, για να εμφανίσει σε ένα ευρετήριο στην εφαρμογή του τις εγγραφές που "έπεφταν" στο δικό μου σύστημα καλούσε το console app κλπ κλπ σε άλλο instance σε άλλη βάση σε άλλο μηχάνημα με την όποια καθυστέρηση...&lt;br /&gt;&lt;br /&gt;Στην περίπτωση trigger&amp;nbsp;η ενημέρωση είναι άμεση αλλά εάν χρησιμοποιήσω ένα linked sevrver (σε άλλο instance) και distributed transaction δεν έχω τρόπο να εγγυηθώ ότι αν κάτι πάει στραβά η εγγραφή στον δίκο μου πίνακα (που ενεργοποιεί και τον trigger) δεν θα γίνει rollback ...&lt;br /&gt;&lt;br /&gt;Οπότε κατέληξα στη λύση trigger για ενημέρωση μίας άλλης βάσης στο τοπικό instance με τη χρήση SAVEPOINT.&lt;br /&gt;&lt;/font&gt;&lt;/p&gt;</description></item><item><title>Re: AFTER INSERT TRIGGER</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/3587.aspx</link><pubDate>Tue, 19 Jul 2005 01:07:41 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:3587</guid><dc:creator>Aris</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/3587.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=3587</wfw:commentRss><description>Το extra βήμα έχει σαν αποτέλεσμα την αποσύνδεση της εφαρμογής σου από την εφαρμογή του συνεργάτη σου. Είναι μιά λογική messaging, ουσιαστικά.&lt;br /&gt;&lt;br /&gt;Εάν&amp;nbsp;καμμία καθυστέρηση δεν είναι αποδεκτή, γιατί δεν χρησιμοποιείτε, και οι δύο,&amp;nbsp;την ίδια βάση;&lt;br /&gt;Εάν κάποια καθυστέρηση είναι αποδεκτή αλλά πρέπει να υπάρχει πλήρης έλεγχος των ενημερώσεων, τότε η προτεινόμενη λύση:&lt;br /&gt;- εξασφαλίζει την ακαιραιότητα των δεδομένων&lt;br /&gt;- απεμπλέκει τα δικά σου transactions από τις&amp;nbsp;ανάγκες ενημέρωσης του άλλου συστήματος (το ενημερώνεις μόνον όταν είσαι εντάξει και μπορείς)&lt;br /&gt;- Επιταχύνεις την δική σου λειτουργία, ειδικά εάν κάνεις τα βήματα ενημέρωσης σε άλλο thread&lt;br /&gt;- έχεις την δυνατότητα να τον ενημερώσεις σε batch mode (π.χ. κάθε 10 εγγραφές)&lt;br /&gt;&lt;br /&gt;Το κόστος (ένα update και ένα read από την άλλη βάση) δεν είναι τραγικό, εάν συγκριθεί με το κόστος ενός πλήρους rollback εάν κάτι δεν πάει καλά στην άλλη βάση.&lt;br /&gt;&lt;br /&gt;Άρης</description></item><item><title>Re: AFTER INSERT TRIGGER</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/3575.aspx</link><pubDate>Mon, 18 Jul 2005 22:51:59 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:3575</guid><dc:creator>axaros</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/3575.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=3575</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;Aris 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;br /&gt;Στο άλλο thread, είχες πει ότι: &lt;table cellspacing="0" cellpadding="0" width="90%" align="left"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td class="txt4" valign="top" align="left"&gt; &lt;p&gt;&lt;font style="BACKGROUND-COLOR: #efefef"&gt;&lt;font size="2"&gt; &lt;blockquote&gt; &lt;table width="85%"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td class="txt4"&gt;&lt;img src="/forums/Themes/MistBlue/images/icon-quote.gif" /&gt;&amp;nbsp;&lt;strong&gt;axaros wrote:&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td class="quoteTable"&gt; &lt;table width="100%"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td class="txt4" valign="top" width="100%"&gt;Αυτό που θέλω να κάνω είναι σε ένα βήμα να&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;1)Διαβάσω ένα set εγγραφών&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;2)Να το μαρκάρω σαν exported&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;3)Nα το εισάγω σε μία Export βάση&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/blockquote&gt;&lt;br /&gt;Εάν αυτό ισχύει, και μπορείς να έχεις ένα tri-state flag (Not for export - Under export - Exported), μήπως θα μπορούσες να τροποποιήσεις την σειρά των ενεργειών ώστε να ξεμπλέξει λίγο το θέμα; Δηλαδή:&lt;br /&gt;&lt;br /&gt;1. Επιλέγεις τι πρέπει να εξαχθεί, και μαρκάρεις σαν "Under export"&lt;br /&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;br /&gt;Μου βάζεις ένα έξτρα βήμα ... Γιατί να κάνω update σαν under export ;&lt;br /&gt;Άλλα ούτως ή άλλως το serviced component δουλεύει μια χαρά.&lt;br /&gt;&lt;br /&gt;Εάν πάμε στη λογική trigger αλλάζει το πράγμα ...&lt;br /&gt;&lt;br /&gt;Βασικά η λύση serviced component "δεν άρεσε" γιατί ο συνεργάτης που θέλει τις πληροφορίες δουλεύει με το Omnis studio και για κάποιο λόγο μου έθεσε ότι δεν μπορεί να μιλήσει με COM. Οπότε καλούσε ένα console app με κάποιες παραμέτρους και αυτό με τη σειρά του έκανε το call στο serviced component με αποτέλεσμα να υπάρχει μία καθυστέρηση στην ενημέρωση των βάσεων. Επειδή όποια εγγραφή "πέφτει" στο σύστημα μου πρέπει να εμφανίζεται και στο δικό του (συγκεκριμένα τα παραπάνω γίνονταν όταν καλούσε κάποια εύρεση στην εφαρμογή του) και κάτω από αυτούς τους όρους η λύση trigger κρίθηκε καλύτερη.&lt;br /&gt;&lt;br /&gt;Υπό αυτό το σενάριο όταν "πέφτει" μια εγγραφή στο σύστημα μου ενημερώνεται και το δικό του ...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;&lt;/font&gt; &lt;p&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/BLOCKQUOTE&gt;</description></item><item><title>Re: AFTER INSERT TRIGGER</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/3574.aspx</link><pubDate>Mon, 18 Jul 2005 22:34:04 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:3574</guid><dc:creator>Aris</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/3574.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=3574</wfw:commentRss><description>Επανέρχομαι στο ζήτημα της λογικής που πρέπει να υλοποιηθεί:&lt;br /&gt;Στο άλλο thread, είχες πει ότι: &lt;table cellspacing="0" cellpadding="0" width="90%" align="left"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td class="txt4" valign="top" align="left"&gt; &lt;p&gt;&lt;font style="BACKGROUND-COLOR: #efefef"&gt;&lt;font size="2"&gt;&lt;BLOCKQUOTE&gt;&lt;table width="85%"&gt;&lt;tr&gt;&lt;td class="txt4"&gt;&lt;img src="/forums/Themes/MistBlue/images/icon-quote.gif"&gt;&amp;nbsp;&lt;strong&gt;axaros 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;Αυτό που θέλω να κάνω είναι σε ένα βήμα να&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;1)Διαβάσω ένα set εγγραφών&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;2)Να το μαρκάρω σαν exported&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;3)Nα το εισάγω σε μία Export βάση&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/BLOCKQUOTE&gt;&lt;br /&gt;Εάν αυτό ισχύει, και μπορείς να έχεις ένα tri-state flag (Not for export - Under export - Exported), μήπως θα μπορούσες να τροποποιήσεις την σειρά των ενεργειών ώστε να ξεμπλέξει λίγο το θέμα; Δηλαδή:&lt;br /&gt;1. Επιλέγεις τι πρέπει να εξαχθεί, και μαρκάρεις σαν "Under export"&lt;br /&gt;2.&amp;nbsp;Κάνεις&amp;nbsp;την εισαγωγή στην άλλη βάση&lt;br /&gt;3. Εξετάζεις το αποτέλεσμα του [2], διαβάζοντας τι μπήκε (ή τρως Timeout)&lt;br /&gt;4. Ανάλογα με το [3], αλλάζεις το "Under export" σε "Exported"&lt;br /&gt;Τα [2],[3],[4] θα μπορούσαν να παίζουν και σε άλλο Thread.&lt;br /&gt;&lt;br /&gt;Η [1] δεν έχει πρόβλημα transaction (ως προς την άλλη βάση). Εάν αποτυγχάνει τοπικά (ως προς την πρώτη βάση), το διαχειρίζεσαι τοπικά &lt;img src="/forums//emoticons/emotion-1.gif" alt="Smile" /&gt;&lt;br /&gt;Τα άλλα στάδια παίζουν ανεξάρτητα. Όταν πάρεις αποτέλεσμα, ή ενημερώνεις την πρώτη βάση ότι "ξεμπέρδεψες" ή επαναλαμβάνεις.&lt;br /&gt;&lt;br /&gt;Ελπίζω ότι έχω καταλάβει σωστά το πρόβλημα.&lt;img src="/forums//emoticons/emotion-10.gif" alt="Embarrassed" /&gt;&lt;br /&gt;Εάν όχι, ...&lt;br /&gt;&lt;br /&gt;Άρης&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;&lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</description></item><item><title>Re: AFTER INSERT TRIGGER</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/3567.aspx</link><pubDate>Mon, 18 Jul 2005 19:57:28 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:3567</guid><dc:creator>axaros</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/3567.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=3567</wfw:commentRss><description>&lt;p&gt;&lt;font style="BACKGROUND-COLOR: #efefef"&gt;Άρη καλημέρα ,&lt;br /&gt;Από το άρθρο :&lt;br /&gt;&lt;a target="_blank" title="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/acdata/ac_8_md_06_4qcz.asp" href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/acdata/ac_8_md_06_4qcz.asp"&gt;http://msdn.microsoft.com/library/default.asp?url=/library/en-us/acdata/ac_8_md_06_4qcz.asp&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A trigger always operates as if there were an outstanding transaction in effect when the trigger is executed. This is definitely true if the statement firing the trigger is in an implicit or explicit transaction. It is also true in autocommit mode. When a statement begins executing in autocommit mode, there is an implied BEGIN TRANSACTION to allow the recovery of all modifications generated by the statement if it encounters an error. This implied transaction has no effect on the other statements in the batch because it is either committed or rolled back when the statement completes. This implied transaction is still in effect, however, when a trigger is called.&lt;br /&gt;&lt;br /&gt;Όσον αφορά&amp;nbsp;το serviced component απλά ήθελα να δοκιμάσω την περίπτωση που πάει κάτι στραβά για αυτόν ακριβώς το λόγο έκανα rollback στο τέλος.&lt;br /&gt;Δεν θέλω να κάνω κάτι&amp;nbsp;με κάποιο αποτυχημένο transaction.&lt;br /&gt;&lt;br /&gt;Παρεπιπτόντως ακόμα δεν έχω βρει κάτι για την περίπτωση Sybase. Από SQL server σε SQL Server δουλεύει μια χαρά ...&lt;br /&gt;&lt;br /&gt;Εάν τώρα εναλλακτικά το ίδιο πρόβλημα (export δεδομένων από μία βάση σε μία άλλη) το λύσω με trigger θέλω οπωσδήποτε η εγγραφή που (γίνεται Insert) να καταχωρείται πάντα και εάν συμβεί κάτι (π.χ. χάνω στιγμιαία την τοπική σύνδεση δικτύου) να γίνεται rollback μόνο το action του trigger.&lt;br /&gt;&lt;br /&gt;Για local transactions βρήκα ότι αυτό γίνεται με SAVEPOINTS. &lt;br /&gt;Στην περίπτωση που χρησιμοποιήσω linked server και distributed transaction από ότι διάβασα δεν υπάρχει υποστήριξη για SAVEPOINTS.&lt;br /&gt;&lt;/font&gt;&lt;/p&gt;</description></item><item><title>Re: AFTER INSERT TRIGGER</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/3535.aspx</link><pubDate>Sun, 17 Jul 2005 04:28:26 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:3535</guid><dc:creator>Aris</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/3535.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=3535</wfw:commentRss><description>Τι εννοείς "αποτυχία"; Αφού η εγγραφή έχει μπει επιτυχώς...&lt;br /&gt;&lt;br /&gt;Η εισαγωγή γίνεται στα πλαίσια ευρύτερου Transaction που μπορεί να αποτύχει αργότερα;&lt;br /&gt;Σε αυτή την περίπτωση, μήπως πρέπει να τροποποιήσεις την σειρά των ενεργειών;&lt;br /&gt;&lt;br /&gt;Είναι η περίπτωση με τον Adaptive Sever Anywhere; Μου έχει μείνει η απορία γιατί ήθελες να έχεις ένα αποτυχημένο transaction ... &lt;img src="/forums//emoticons/emotion-10.gif" alt="Embarrassed" /&gt;&lt;br /&gt;&lt;br /&gt;Άρης&lt;br /&gt;&lt;br /&gt;</description></item><item><title>Re: AFTER INSERT TRIGGER</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/3533.aspx</link><pubDate>Sun, 17 Jul 2005 03:38:53 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:3533</guid><dc:creator>axaros</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/3533.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=3533</wfw:commentRss><description>&lt;p&gt;&lt;font style="BACKGROUND-COLOR: #efefef"&gt;Όχι ακριβώς ...&lt;br /&gt;Θέλω σε κάποιο INSERT να γίνεται triggered η εγγραφή σε κάποιο άλλο πίνακα σε κάποια άλλη βάση αλλά σε περίπτωση αποτυχίας &lt;strong&gt;να γίνεται rollback μόνο&lt;/strong&gt; το action του trigger ...&lt;br /&gt;&lt;br /&gt;Βασικά το ζητούμενο είναι ότι και στο αντίστοιχο θέμα στο COM+ forum. Θέλω να κάνω export κάποιες πληροφορίες από μία βάση σε μία άλλη ...&lt;br /&gt;&lt;/font&gt;&lt;/p&gt;</description></item><item><title>Re: AFTER INSERT TRIGGER</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/3532.aspx</link><pubDate>Sun, 17 Jul 2005 03:02:31 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:3532</guid><dc:creator>Aris</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/3532.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=3532</wfw:commentRss><description>Μπορείς να είσαι πιό σαφής και αναλυτικός στο τι θες να κάνεις;&lt;br /&gt;&lt;br /&gt;Από τον T-SQL κώδικα, το μόνο που καταλαβαίνω είναι ότι θες να εισάγεις κάποια από τα εισαχθέντα στοιχεία και κάπου αλλού ...&lt;br /&gt;&lt;br /&gt;Άρης</description></item><item><title>Re: AFTER INSERT TRIGGER</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/3521.aspx</link><pubDate>Sat, 16 Jul 2005 18:36:18 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:3521</guid><dc:creator>axaros</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/3521.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=3521</wfw:commentRss><description>&lt;p&gt;&lt;font style="BACKGROUND-COLOR: #efefef"&gt;Το μόνο που βρήκα είναι η χρήση SAVEPOINT το οποίο δουλεύει μόνο για local transaction. Για distributed υποθέτω ότι έχασα ;&lt;br /&gt;Μπορεί να με βοηθήσει κάποιος ;&lt;br /&gt;&lt;/font&gt;&lt;/p&gt;</description></item><item><title>Re: AFTER INSERT TRIGGER</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/3331.aspx</link><pubDate>Wed, 06 Jul 2005 00:46:05 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:3331</guid><dc:creator>axaros</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/3331.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=3331</wfw:commentRss><description>&lt;p&gt;&lt;font style="BACKGROUND-COLOR: #efefef"&gt;Τρίχες δουλεύει ... Παιδιά τα φώτα σας ....&lt;/font&gt;&lt;/p&gt;</description></item><item><title>Re: AFTER INSERT TRIGGER</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/3330.aspx</link><pubDate>Wed, 06 Jul 2005 00:23:38 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:3330</guid><dc:creator>axaros</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/3330.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=3330</wfw:commentRss><description>&lt;p&gt;Συγνώμη που βιάστηκα αλλά το transaction είναι distibuted με χρήση linked server.&lt;br /&gt;Το παρακάτω statement κάνει αυτό που θέλω αλλά ζητώ τη γνώμη σας :&lt;br /&gt;&lt;br /&gt;CREATE TRIGGER tgrTest ON dbo.tblSourceTest &lt;br /&gt;AFTER INSERT&lt;br /&gt;AS&lt;/p&gt; &lt;p&gt;SET XACT_ABORT ON&lt;br /&gt;BEGIN DISTRIBUTED TRANSACTION&lt;br /&gt;Insert Into [PC-PAVRM].[TEST DATABASE].dbo.tblTest&lt;br /&gt;&amp;nbsp;Select Id,Des From Inserted&lt;br /&gt;Commit TRAN&lt;/p&gt; &lt;p&gt;COMMIT TRANSACTION&lt;br /&gt;&lt;/p&gt;</description></item></channel></rss>