<?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 από αρχείο txt</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/52800.aspx</link><pubDate>Mon, 27 Jul 2009 17:05:11 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:52800</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/52800.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=52800</wfw:commentRss><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="http://www.dotnetzone.gr/cs/Themes/default/images/icon-quote.gif"&gt; &lt;strong&gt;masteripper:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;
&lt;P&gt;Υπάρχει και η μπακαλίστικη μέθοδος όπου τραβάς το txt σε μια βάση της Access ,κάνεις τις&amp;nbsp; αλλαγές/διορθώσεις που χρειάζεσαι και το στέλνεις στον SQL.&lt;/P&gt;
&lt;P&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;/P&gt;
&lt;P&gt;Επειδή όμως εδώ προσπαθούμε να αποφύγουμε τις μπακαλίστικες μεθόδους, καλό είναι να μην χρησιμοποιούμε ούτε το Excel ούτε την Access για να κάνουμε μία δουλειά την οποία μπορεί να κάνει άνετα οποιαδήποτε βάση δεδομένων. Μπορεί να φαίνεται ότι η "μπακαλίστικη" μέθοδος με το Excel ή την Access είναι εύκολη όταν το κάνουμε σαν άσκηση, είναι όμως εντελώς ακατάλληλα για οποιαδήποτε άλλη χρήση.&lt;/P&gt;
&lt;P&gt;Μην ξεχνάμε ότι οι εισαγωγές από txt δεν είναι ποτέ one off. Πρέπει να γίνονται περιοδικά, συχνά καθημερινά, για να ανεβάσουμε στοιχεία από ένα σύστημα και να τα περάσουμε σε άλλο. Γι αυτό υπάρχει το BULK INSERT, για να ανέβουν γρήγορα τα δεδομένα σε ένα προσωρινό πίνακα. Μετά εκτελούμε τα Update, Insert που θέλουμε για να περάσουμε τα δεδομένα στη μορφή που θέλουμε, στους πίνακες που θέλουμε.&lt;/P&gt;
&lt;P&gt;Ως τώρα έχουν αναφερθεί δύο πρακτικοί τρόποι γι αυτό το INSERT&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Το BULK INSERT που πρότεινε ο imanos, το οποίο χρησιμοποιείται κατά κόρον όταν θέλουμε να φορτώσουμε δεδομένα απευθείας στη βάση.&lt;/LI&gt;
&lt;LI&gt;Ένα ενδιάμεσο πρόγραμμα όπως πρότεινε ο gtas, το οποίο θα διαβάσει στοιχεία από διάφορα συστήματα και θα τα περάσει στη βάση. Αυτό χρειάζεται συνήθως όταν δεν μπορούμε να βρούμε εύκολα ένα αρχείο txt σε αναγνώσιμη μορφή (θυμάται κανείς το EBCDIC? Κι όμως υπάρχει στα AS/400!).&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Να προσθέσω κι εγώ τα SQL Server Integration Services τα οποία μπορούν να κάνουν ό,τι και το ενδιάμεσο πρόγραμμα χωρίς όμως να βγαίνει κανείς από τον SQL Server. &lt;/P&gt;
&lt;P&gt;Η γρηγορότερη μέθοδος πάντως είναι το BULK INSERT, μετά από το οποίο μπορούμε να χρησιμοποιήσουμε SQL απευθείας στα δεδομένα μας και να πετύχουμε αυτό που θέλουμε ευκολότερα και με μεγάλη ταχύτητα.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Υ.Γ. Αν μιλάμε για SQL Server 2008 θα βοηθήσει φοβερά η εντολή MERGE, με την οποία μπορεί κανείς να κάνει update τις υπάρχουσες εγγραφές και Insert τις νέες, με μία μόνο εντολή.&lt;/P&gt;</description></item><item><title>Απ: Αναβάθμιση πίνακα βάσης SQL από αρχείο txt</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/52799.aspx</link><pubDate>Mon, 27 Jul 2009 16:32:52 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:52799</guid><dc:creator>Τάσκος Γιώργος</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/52799.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=52799</wfw:commentRss><description>&lt;br&gt;&lt;a href="http://www.dotnetzone.gr/cs/forums/thread/51977.aspx"&gt;http://www.dotnetzone.gr/cs/forums/thread/51977.aspx&lt;/a&gt;&lt;br&gt;&lt;br&gt;</description></item><item><title>Απ: Αναβάθμιση πίνακα βάσης SQL από αρχείο txt</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/52798.aspx</link><pubDate>Mon, 27 Jul 2009 15:34:06 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:52798</guid><dc:creator>masteripper</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/52798.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=52798</wfw:commentRss><description>&lt;P&gt;Υπάρχει και η μπακαλίστικη μέθοδος όπου τραβάς το txt σε μια βάση της Access ,κάνεις τις&amp;nbsp; αλλαγές/διορθώσεις που χρειάζεσαι και το στέλνεις στον SQL.&lt;/P&gt;</description></item><item><title>Απ: Αναβάθμιση πίνακα βάσης SQL από αρχείο txt</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/52794.aspx</link><pubDate>Sun, 26 Jul 2009 19:13:30 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:52794</guid><dc:creator>imanos</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/52794.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=52794</wfw:commentRss><description>&lt;P&gt;Ένας τρόπος για να το κάνεις μέσω TRANSACT SQL είναι ο παρακάτω.&lt;/P&gt;&lt;PRE&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;update&lt;/SPAN&gt; π.χ. meli_mirror
&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;TABLE&lt;/SPAN&gt; meli_mirror
		(
		 ID &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;int&lt;/SPAN&gt;,
		 XREOSI &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;float&lt;/SPAN&gt;
		)

Κατόπιν μπορείς να κάνεις εισαγωγή το &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;text&lt;/SPAN&gt; αρχείο σου (&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;file&lt;/SPAN&gt;.txt) με &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;BULK&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; στόν πίνακα meli_mirror. 
Προσοχή πρίν από την εισαγωγή στόν πίνακα meli_mirror πρώτα πρέπει να το καθαρίσεις.
 
 &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:teal;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;--Καθαρισμός πίνακα&lt;/SPAN&gt;
  &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;truncate&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;table&lt;/SPAN&gt; meli_mirror
  GO
 &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:teal;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;---Εισαγωγή στόν πίνακα αντίγραφό&lt;/SPAN&gt;
  &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;BULK&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; meli_mirror
   &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;FROM&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;'C:\file.txt'&lt;/SPAN&gt;
   &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;WITH&lt;/SPAN&gt; 
      (
         FIELDTERMINATOR =&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;','&lt;/SPAN&gt;,
         ROWTERMINATOR =&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;'\n'&lt;/SPAN&gt;
      ) 
 GO
 &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:teal;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;---Update από τον πίνακα αντίγραφο στό πίνακα της βάσης που θέλουμε να ενημερώσουμε.&lt;/SPAN&gt;
  &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;update&lt;/SPAN&gt; meli &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;set&lt;/SPAN&gt; meli.xreosi=b.xreosi &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;from&lt;/SPAN&gt;  meli_mirror b
  &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;where&lt;/SPAN&gt; meli.ID=b.ID 
 GO
&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:teal;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;---Έλεγχος και εισαγωγή εγγραφών που υπάρχουν στον mirror και δέν υπάρχουν στον πίνακα της βάσης που θέλουμε να ενημερώσουμε.&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;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;into&lt;/SPAN&gt;  meli
&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;select&lt;/SPAN&gt; ID,XREOSI &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;from&lt;/SPAN&gt;  meli_mirror &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;where&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:silver;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;not&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:silver;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;exists&lt;/SPAN&gt; (&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;select&lt;/SPAN&gt; * &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;from&lt;/SPAN&gt; meli &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;where&lt;/SPAN&gt; meli.ID=meli_mirror.ID) 


 &lt;/SPAN&gt;&lt;/PRE&gt;</description></item><item><title>Απ: Αναβάθμιση πίνακα βάσης SQL από αρχείο txt</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/52793.aspx</link><pubDate>Sun, 26 Jul 2009 18:50:47 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:52793</guid><dc:creator>ikaragkiozoglou</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/52793.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=52793</wfw:commentRss><description>&lt;P&gt;&lt;SPAN style="FONT-FAMILY:'Tahoma','sans-serif';COLOR:black;FONT-SIZE:10pt;"&gt;Ένας εύκολος τρόπος για να κάνεις την ενημέρωση του πίνακα είναι να εισάγεις το αρχείο κειμένου στο excel και μετά να κάνεις Import το excel στον SQL σε έναν καινούριο πίνακα. Μετά απλά θα κάνεις ένα update που με where θα βλέπει το id από τον πίνακα που έκανες εισαγωγή και θα ενημερώνεις τον πίνακα σου. Αφού το κάνεις, σβήσε τον πίνακα που έκανες import και είσαι έτοιμος.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;</description></item><item><title>Αναβάθμιση πίνακα βάσης SQL από αρχείο txt</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/52791.aspx</link><pubDate>Sun, 26 Jul 2009 18:28:59 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:52791</guid><dc:creator>berta</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/52791.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=52791</wfw:commentRss><description>&lt;P style="MARGIN:0cm 0cm 0pt;" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face="Times New Roman"&gt;&lt;SPAN class=postbody&gt;Έχουμε ένα αρχείο txt (delimited, τα δεδομένα χωρίζονται μεταξύ τους με κόμμα [,] π.χ. file.txt όπου έχουμε δεδομένα ανά γραμμή που αντιστοιχούν σε δύο πεδία ενός πίνακα π.χ. meli μιας βάσης δεδομένων π.χ. basi &lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;&lt;SPAN class=postbody&gt;Για παράδειγμα το αρχείο file.txt έχει τις εξής γραμμές : &lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;&lt;SPAN class=postbody&gt;1,200 &lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN class=postbody&gt;2,15000 &lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN class=postbody&gt;3,300 &lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN class=postbody&gt;200,500 &lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN class=postbody&gt;κ.λ.π. &lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;&lt;SPAN class=postbody&gt;Η πρώτη στήλη αντιστοιχεί στο ID του πίνακα meli της βάσης (μοναδικός κωδικός) και η δεύτερη στήλη αντιστοιχεί στο πεδίο xreosi του πίνακα meli της βάσης. &lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN class=postbody&gt;θέλω να ενημερώσω το πεδίο xreosi του πίνακα meli της βάσης, μαζικά διαβάζοντας τα δεδομένα από το αρχείο file.txt, ελέγχοντας ο κωδικός της πρώτης στήλης του αρχείου να αντιστοιχεί στο id του πίνακα meli &lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;&lt;SPAN class=postbody&gt;Αν ήταν μόνο μια εγγραφή θα έγραφα : &lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;&lt;SPAN class=postbody&gt;update basi.meli SET meli.xreosi = 200 WHERE meli.ID = 1 &lt;/SPAN&gt;&lt;BR&gt;&lt;SPAN class=postbody&gt;τώρα που έχουμε πολλές εγγραφές πως θα ανοίξω το αρχείο file.txt να διαβάσω γραμμή γραμμή και ταυτόχρονα να ενημερωνω το πίνακα ; &lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;&lt;SPAN class=postbody&gt;Ευχαριστώ εκ των προτέρων&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;</description></item></channel></rss>