<?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>Απ: SQL rollback tran</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/37871.aspx</link><pubDate>Fri, 30 Nov 2007 06:31:51 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:37871</guid><dc:creator>thodoros</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/37871.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=37871</wfw:commentRss><description>&lt;P&gt;Ευχαριστώ πολύ, τώρα δούλεψε!!!!&lt;/P&gt;</description></item><item><title>Απ: SQL rollback tran</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/37869.aspx</link><pubDate>Fri, 30 Nov 2007 06:03:00 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:37869</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/37869.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=37869</wfw:commentRss><description>&lt;P&gt;Το query που έγραψες λέει χονδρικά "Αν υπάρχει οποιαδήποτε εγγραφή στον πίνακα με την τιμή 2007, κάνε Rollback". Μάλιστα, ο τρόπος αυτός να γράφεις queries νομίζω ότι σημαίνει "διάλεξε μία τυχαία τιμή από τον πίνακα, και αν είναι 2007 κάνε rollback". &lt;/P&gt;
&lt;P&gt;Ο Μάνος σου έδωσε ένα καλό παράδειγμα στο προηγούμενο post για το πως να βρεις τις τιμές που άλλαξαν στον πίνακα. Σε ένα UPDATE trigger, οι νέες τιμές υπάρχουν στον προσωρινό πίνακα INSERTED ενώ οι προηγούμενες τιμές στον πίνακα DELETED. Οπότε, για να ελέγξεις αν άλλαξε μία εγγραφή η οποία είχε παλιά τιμή 2007, θα πρέπει να εκτελέσεις IF EXISTS(SELECT * FROM DELETED WHERE ReportingYear=2007) ...&lt;/P&gt;
&lt;P&gt;Τέλος, ρίξε μία ματιά στο Books Online. Περιγράφει πολύ καλά τον τρόπο με τον οποίο δουλεύουν τα triggers και τους πίνακες INSERTED, DELETED κλπ.&lt;/P&gt;</description></item><item><title>Απ: SQL rollback tran</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/37865.aspx</link><pubDate>Fri, 30 Nov 2007 04:42:17 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:37865</guid><dc:creator>thodoros</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/37865.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=37865</wfw:commentRss><description>&lt;P&gt;Δημιούργησα το εξής:&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-GB;"&gt;&lt;FONT size=3&gt;&lt;FONT face="Times New Roman"&gt;CREATE TRIGGER [LockRecords] ON [dbo].[MainTablePer] &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-GB;"&gt;&lt;FONT size=3&gt;&lt;FONT face="Times New Roman"&gt;FOR UPDATE &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-GB;"&gt;&lt;FONT size=3&gt;&lt;FONT face="Times New Roman"&gt;AS&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;SPAN style="mso-ansi-language:EN-GB;"&gt;&lt;FONT size=3&gt;&lt;FONT face="Times New Roman"&gt;IF (SELECT ReportingYear FROM MainTablePer) = 2007 &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Times New Roman" size=3&gt;Begin&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN:0cm 0cm 0pt;"&gt;&lt;FONT face="Times New Roman" size=3&gt;RollBack&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Times New Roman';mso-ansi-language:EL;mso-fareast-font-family:'Times New Roman';mso-fareast-language:EL;mso-bidi-language:AR-SA;"&gt;end&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Times New Roman';mso-ansi-language:EL;mso-fareast-font-family:'Times New Roman';mso-fareast-language:EL;mso-bidi-language:AR-SA;"&gt;Υποτίθεται ότι όταν η ReportingYear, σε κάποια εγγραφή,&amp;nbsp;έχει την τιμή 2007, δεν θα έπρεπε να επιτρέπονται αλλαγές. Το θέμα όμως είναι ότι ακόμη και στις εγγραφές που το πεδίο ReportingYear&amp;nbsp;είναι Null, δεν επιτρέπονται οι αλλαγές, έτσι δεν μπορώ να κάνω&amp;nbsp;update με την τιμή 2007, ώστε να την κλειδώσω όταν θα θέλω. Επιπλέον, μπορώ να αλλάξω την τιμή 2007 σε οτιδήποτε (π.χ.) σε 2008, αλλά μετά το 2008 δεν μπορώ να το αλλάξω!!&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Times New Roman';mso-ansi-language:EL;mso-fareast-font-family:'Times New Roman';mso-fareast-language:EL;mso-bidi-language:AR-SA;"&gt;Είναι κάτι που δεν καταλαβαίνω και άρα το κάνω λάθος; Πρόθεσή μου είναι όσες εγγραφές έχουν 2007 στην πιό πάνω στήλη&amp;nbsp;να μην είναι δυνατόν να τροποποιηθούν.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Times New Roman';mso-ansi-language:EL;mso-fareast-font-family:'Times New Roman';mso-fareast-language:EL;mso-bidi-language:AR-SA;"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Times New Roman';mso-ansi-language:EL;mso-fareast-font-family:'Times New Roman';mso-fareast-language:EL;mso-bidi-language:AR-SA;"&gt;Ευχαριστώ. &amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description></item><item><title>Απ: SQL rollback tran</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/37706.aspx</link><pubDate>Mon, 26 Nov 2007 16:58:37 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:37706</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/37706.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=37706</wfw:commentRss><description>&lt;P&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:black;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;CREATE&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;TRIGGER&lt;/SPAN&gt; &amp;lt;trigger_name&amp;gt;&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;ON&lt;/SPAN&gt; &amp;lt;table_name&amp;gt;&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;FOR&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;INSERT&lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;AS&lt;/SPAN&gt; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;DECLARE&lt;/SPAN&gt; @SOFTLOCK &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;BIT&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;SELECT&lt;/SPAN&gt; @SOFTLOCK=SOFTLOCK&lt;BR&gt;&amp;nbsp;&amp;nbsp;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;FROM&lt;/SPAN&gt; INSERTED &lt;BR&gt;&amp;nbsp;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;IF&lt;/SPAN&gt; @SOFTLOCK = 0 &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;ROLLBACK&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;TRAN&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;GO&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:black;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&lt;FONT face=Tahoma size=2&gt;Ας πούμε ότι SoftLock ονομάζεται το πεδίο σου (μιας και το Lock είναι reserved). Αυτό παίζει μια χαρά όταν κάνεις τα insert ένα-ένα. Άν κάνεις INSERT INTO...SELECT τότε θα κάνει rollback ό,τι έχει μπει μέχρη τη στιγμή που θα συνατήσει το 0&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:black;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&lt;FONT face=Tahoma size=2&gt;Κατά τ' άλλα δεν χρειάζεται να κάνεις κάτι άλλο, με το που θα τρέξεις το create αυτό, θα είναι ενεργό το trigger.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;</description></item><item><title>Απ: SQL rollback tran</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/37688.aspx</link><pubDate>Sat, 24 Nov 2007 05:28:03 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:37688</guid><dc:creator>thodoros</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/37688.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=37688</wfw:commentRss><description>&amp;nbsp;Καμια βοήθεια ρε παιδιά; 3 μέρες το παλεύω αλλά τίποτα....&amp;nbsp;</description></item><item><title>Απ: SQL rollback tran</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/37662.aspx</link><pubDate>Fri, 23 Nov 2007 04:51:21 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:37662</guid><dc:creator>thodoros</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/37662.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=37662</wfw:commentRss><description>&lt;P&gt;Θέλω να κάνω Insert. Ο πίνακας έχει 5 στήλες, η μία (Lock) είναι bit και παίρνει τιμές 0 και 1. Όταν είναι&amp;nbsp;0 (άρα unlocked)&amp;nbsp;θέλω να γίνεται rollback. Έχω ακόμη μία απορία όμως. Πέρα απο το να δημιουργήσω το trigger, χρειάζεται να κάνω κάτι άλλο για να ενεργοποιηθεί, όπως θα έκανα για παράδειγμα με τη δόμηση ενός συμβάντος στην access (π.χ. με την φόρτωση της φόρμας)&lt;/P&gt;
&lt;P&gt;Ευχαριστώ. &amp;nbsp;&lt;/P&gt;</description></item><item><title>Απ: SQL rollback tran</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/37629.aspx</link><pubDate>Thu, 22 Nov 2007 17:06:39 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:37629</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/37629.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=37629</wfw:commentRss><description>&lt;P&gt;Κατά το insert? Κατά το update? Πως είναι η δομή του πίνακα; Εφόσον θες βοήθεια στη σύνταξη θα πρέπει να είσαι πολύ συγκεκριμένος. Γενικά πάντως η σύνταξη είναι κάπως έτσι:&lt;/P&gt;&lt;PRE class=clsCode&gt;CREATE TRIGGER &amp;lt;trigger_name&amp;gt; on &amp;lt;table_name&amp;gt; FOR UPDATE AS
    IF UPDATE(&amp;lt;column_name&amp;gt;)
    BEGIN
        RAISERROR ('my error here', 16, 1)
        ROLLBACK TRAN
        RETURN
    END
&lt;/PRE&gt;</description></item><item><title>SQL rollback tran</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/37619.aspx</link><pubDate>Thu, 22 Nov 2007 06:46:41 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:37619</guid><dc:creator>thodoros</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/37619.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=37619</wfw:commentRss><description>&lt;P&gt;Θέλω να δημιουργήσω ένα trigger σε SQL Server 2000, το οποίο θα ελέγχει την τιμή ενός απο τα πεδία του πίνακα και όταν αυτό θα είναι null θα κάνει rollback tran τη συγκεκριμένη εγγραφή. Όλα καλά στο σκεπτικό, αλλά μήπως μπορεί κάποιος να βοηθήσει στη σύνταξη;;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Ευχαριστώ&lt;/P&gt;</description></item></channel></rss>