<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>artiso Blog - SQL</title>
    <link>http://www.artiso.com/ProBlog/</link>
    <description>Neues rund um's Thema .Net</description>
    <language>de-de</language>
    <copyright>Thomas</copyright>
    <lastBuildDate>Tue, 13 Oct 2009 00:38:48 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 1.9.6264.0</generator>
    <managingEditor>tschissler@artiso.com</managingEditor>
    <webMaster>tschissler@artiso.com</webMaster>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=0925f337-10ae-4d31-ac59-64731aa0ff97</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,0925f337-10ae-4d31-ac59-64731aa0ff97.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,0925f337-10ae-4d31-ac59-64731aa0ff97.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=0925f337-10ae-4d31-ac59-64731aa0ff97</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Hat man eine Query die zwei Spalten mit dem gleichen Namen enthält, dann mekert der
Reporting Services Designer “The query contains more than one unnamed or duplicated
field name. Please specify unique column aliases.” 
</p>
        <p>
          <a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/AliasfrgleichnamigeSpaltenbeiMDXAbfragen_24BA/image_2.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/AliasfrgleichnamigeSpaltenbeiMDXAbfragen_24BA/image_thumb.png" width="377" height="114" />
          </a>
        </p>
        <p>
In der MDX-Abfrage Aliase zu vergeben ist mir nicht gelungen. Glücklicherweise gibt
es aber einen einfacheren Weg das Problem zu lösen. Man geht einfach in die Eigenschaften
des Datasets und dort auf “Fields”. Hier kann man nun einfach einen eindeutigen Alias
angeben.
</p>
        <p>
          <a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/AliasfrgleichnamigeSpaltenbeiMDXAbfragen_24BA/image_4.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/AliasfrgleichnamigeSpaltenbeiMDXAbfragen_24BA/image_thumb_1.png" width="490" height="382" />
          </a>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=0925f337-10ae-4d31-ac59-64731aa0ff97" />
      </body>
      <title>Alias f&amp;uuml;r gleichnamige Spalten bei MDX-Abfragen in Reporting Services</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,0925f337-10ae-4d31-ac59-64731aa0ff97.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,0925f337-10ae-4d31-ac59-64731aa0ff97.aspx</link>
      <pubDate>Tue, 13 Oct 2009 00:38:48 GMT</pubDate>
      <description>&lt;p&gt;
Hat man eine Query die zwei Spalten mit dem gleichen Namen enthält, dann mekert der
Reporting Services Designer “The query contains more than one unnamed or duplicated
field name. Please specify unique column aliases.” 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/AliasfrgleichnamigeSpaltenbeiMDXAbfragen_24BA/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/AliasfrgleichnamigeSpaltenbeiMDXAbfragen_24BA/image_thumb.png" width="377" height="114"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
In der MDX-Abfrage Aliase zu vergeben ist mir nicht gelungen. Glücklicherweise gibt
es aber einen einfacheren Weg das Problem zu lösen. Man geht einfach in die Eigenschaften
des Datasets und dort auf “Fields”. Hier kann man nun einfach einen eindeutigen Alias
angeben.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/AliasfrgleichnamigeSpaltenbeiMDXAbfragen_24BA/image_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/AliasfrgleichnamigeSpaltenbeiMDXAbfragen_24BA/image_thumb_1.png" width="490" height="382"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=0925f337-10ae-4d31-ac59-64731aa0ff97" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,0925f337-10ae-4d31-ac59-64731aa0ff97.aspx</comments>
      <category>SQL</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=491eeae7-9f86-429d-9030-5ccda523ef86</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,491eeae7-9f86-429d-9030-5ccda523ef86.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,491eeae7-9f86-429d-9030-5ccda523ef86.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=491eeae7-9f86-429d-9030-5ccda523ef86</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Oft möchte man Werte, z.B. Prozentwerte als kleine Balken in einem Report darstellen:
</p>
        <p>
          <a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/DatenalsBalkeninReportingServicesKonfigu_21E7/image_2.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/DatenalsBalkeninReportingServicesKonfigu_21E7/image_thumb.png" width="244" height="102" />
          </a>
        </p>
        <p>
Wie man das mit Hilfe der Reporting Services bewerkstelligt, ist im Folgenden kurz
beschrieben. 
</p>
        <ul>
          <li>
Zunächst erstellt man sich eine Grafik mit dem gewünschten Verlauf</li>
          <li>
Dann fügt man eine neue Spalte mit dieser Grafik in den Report ein. Der Grafik gibt
man ein günstige Breite, z.B. 100px.</li>
          <li>
Für die Grafik stellt man nun ein Padding für den rechten Rand ein und zwar über eine
Expression:</li>
        </ul>
        <p>
          <a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/DatenalsBalkeninReportingServicesKonfigu_21E7/image_4.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/DatenalsBalkeninReportingServicesKonfigu_21E7/image_thumb_1.png" width="244" height="204" />
          </a>
        </p>
        <ul>
          <li>
In der Expression gibt man nun eine Formel ein, die den rechten Rand so berechnet,
dass er bei 0 die Breite des Bildes erreicht und beim Maximalwert 0.</li>
        </ul>
        <p>
          <a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/DatenalsBalkeninReportingServicesKonfigu_21E7/image_6.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/DatenalsBalkeninReportingServicesKonfigu_21E7/image_thumb_2.png" width="466" height="424" />
          </a>
        </p>
        <ul>
          <li>
In obigem Beispiel hat das Bild eine Breite von 100pt und soll einen Maximalwert von
1.5 anzeigen, so dass bei 1.5 der Wert für das Padding 0 ist und bei 0 ist er 100
(1,5 * 75). Damit zeigt der Balken die Werte grafisch an. Auf Wunsch kann man natürlich
den Wertebereich auch min Min() und Max() ermitteln.</li>
        </ul>
        <p>
          <a href="http://blogs.msdn.com/bobmeyers/archive/2005/10/15/481342.aspx">http://blogs.msdn.com/bobmeyers/archive/2005/10/15/481342.aspx</a>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=491eeae7-9f86-429d-9030-5ccda523ef86" />
      </body>
      <title>Daten als Balken in Reporting Services Konfigurieren</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,491eeae7-9f86-429d-9030-5ccda523ef86.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,491eeae7-9f86-429d-9030-5ccda523ef86.aspx</link>
      <pubDate>Tue, 13 Oct 2009 00:26:45 GMT</pubDate>
      <description>&lt;p&gt;
Oft möchte man Werte, z.B. Prozentwerte als kleine Balken in einem Report darstellen:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/DatenalsBalkeninReportingServicesKonfigu_21E7/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/DatenalsBalkeninReportingServicesKonfigu_21E7/image_thumb.png" width="244" height="102"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Wie man das mit Hilfe der Reporting Services bewerkstelligt, ist im Folgenden kurz
beschrieben. 
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Zunächst erstellt man sich eine Grafik mit dem gewünschten Verlauf&lt;/li&gt;
&lt;li&gt;
Dann fügt man eine neue Spalte mit dieser Grafik in den Report ein. Der Grafik gibt
man ein günstige Breite, z.B. 100px.&lt;/li&gt;
&lt;li&gt;
Für die Grafik stellt man nun ein Padding für den rechten Rand ein und zwar über eine
Expression:&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/DatenalsBalkeninReportingServicesKonfigu_21E7/image_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/DatenalsBalkeninReportingServicesKonfigu_21E7/image_thumb_1.png" width="244" height="204"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
In der Expression gibt man nun eine Formel ein, die den rechten Rand so berechnet,
dass er bei 0 die Breite des Bildes erreicht und beim Maximalwert 0.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/DatenalsBalkeninReportingServicesKonfigu_21E7/image_6.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/DatenalsBalkeninReportingServicesKonfigu_21E7/image_thumb_2.png" width="466" height="424"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
In obigem Beispiel hat das Bild eine Breite von 100pt und soll einen Maximalwert von
1.5 anzeigen, so dass bei 1.5 der Wert für das Padding 0 ist und bei 0 ist er 100
(1,5 * 75). Damit zeigt der Balken die Werte grafisch an. Auf Wunsch kann man natürlich
den Wertebereich auch min Min() und Max() ermitteln.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;a href="http://blogs.msdn.com/bobmeyers/archive/2005/10/15/481342.aspx"&gt;http://blogs.msdn.com/bobmeyers/archive/2005/10/15/481342.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=491eeae7-9f86-429d-9030-5ccda523ef86" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,491eeae7-9f86-429d-9030-5ccda523ef86.aspx</comments>
      <category>SQL</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=e8b7ec65-7928-4aa0-8c85-67ecb405c54e</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,e8b7ec65-7928-4aa0-8c85-67ecb405c54e.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,e8b7ec65-7928-4aa0-8c85-67ecb405c54e.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=e8b7ec65-7928-4aa0-8c85-67ecb405c54e</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Meinem SQL-Server kam bei einer meiner Datenbank-Tabellen was supekt vor jedenfalls
zeigte er in Klammern hinter der Tabelle ein (Suspect) an und ich konnte auf die Tabelle
nicht mehr zugreifen. Ärgerlich war, dass es sich dabei um die Config-Datenbenk meines
SharePoint-Servers handelte und damit mein kompletter SharePoint-Srever lahm gelegt
war. Glücklicherweise fand ich ein kleines Script, das das Problem in Sekunden behoben
hat.
</p>
        <p>
          <span style="color: #ff0000">
            <em>
              <font color="#0000a0">EXEC sp_resetstatus 'DBname'<br /><br />
ALTER DATABASE DBname SET EMERGENCY<br /><br />
DBCC checkdb('DBname')<br /><br />
ALTER DATABASE DBname SET SINGLE_USER WITH ROLLBACK IMMEDIATE<br /><br />
DBCC CheckDB ('DBname', REPAIR_ALLOW_DATA_LOSS)<br /><br />
ALTER DATABASE DBname SET MULTI_USER</font>
            </em>
          </span>
          <br />
          <br />
Dort habe ich einfach meinen Datenbanknamen entsprechend eingesetzt und schon lief
der SharePoint wieder. Vielen Dank an der Stelle an Mohamad.
</p>
        <p>
          <a href="http://mshehadeh.blogspot.com/2007/09/restoring-sql-server-2005-suspect.html">http://mshehadeh.blogspot.com/2007/09/restoring-sql-server-2005-suspect.html</a>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=e8b7ec65-7928-4aa0-8c85-67ecb405c54e" />
      </body>
      <title>Datenbanktabelle Suspect</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,e8b7ec65-7928-4aa0-8c85-67ecb405c54e.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,e8b7ec65-7928-4aa0-8c85-67ecb405c54e.aspx</link>
      <pubDate>Mon, 12 Oct 2009 06:31:01 GMT</pubDate>
      <description>&lt;p&gt;
Meinem SQL-Server kam bei einer meiner Datenbank-Tabellen was supekt vor jedenfalls
zeigte er in Klammern hinter der Tabelle ein (Suspect) an und ich konnte auf die Tabelle
nicht mehr zugreifen. Ärgerlich war, dass es sich dabei um die Config-Datenbenk meines
SharePoint-Servers handelte und damit mein kompletter SharePoint-Srever lahm gelegt
war. Glücklicherweise fand ich ein kleines Script, das das Problem in Sekunden behoben
hat.
&lt;/p&gt;
&lt;p&gt;
&lt;span style="color: #ff0000"&gt;&lt;em&gt;&lt;font color="#0000a0"&gt;EXEC sp_resetstatus 'DBname'&lt;br&gt;
&lt;br&gt;
ALTER DATABASE DBname SET EMERGENCY&lt;br&gt;
&lt;br&gt;
DBCC checkdb('DBname')&lt;br&gt;
&lt;br&gt;
ALTER DATABASE DBname SET SINGLE_USER WITH ROLLBACK IMMEDIATE&lt;br&gt;
&lt;br&gt;
DBCC CheckDB ('DBname', REPAIR_ALLOW_DATA_LOSS)&lt;br&gt;
&lt;br&gt;
ALTER DATABASE DBname SET MULTI_USER&lt;/font&gt;&lt;/em&gt;&lt;/span&gt;
&lt;br&gt;
&lt;br&gt;
Dort habe ich einfach meinen Datenbanknamen entsprechend eingesetzt und schon lief
der SharePoint wieder. Vielen Dank an der Stelle an Mohamad.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://mshehadeh.blogspot.com/2007/09/restoring-sql-server-2005-suspect.html"&gt;http://mshehadeh.blogspot.com/2007/09/restoring-sql-server-2005-suspect.html&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=e8b7ec65-7928-4aa0-8c85-67ecb405c54e" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,e8b7ec65-7928-4aa0-8c85-67ecb405c54e.aspx</comments>
      <category>SQL</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=5fa2e528-69b4-4325-a2a2-78e96d527391</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,5fa2e528-69b4-4325-a2a2-78e96d527391.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,5fa2e528-69b4-4325-a2a2-78e96d527391.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=5fa2e528-69b4-4325-a2a2-78e96d527391</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Ich hatte gerade das Problem, dass in einem Feld in der Datenbank Einträge wie z.B.
"Thomas, Schissler" standen und ich die in "Schissler, Thomas" ändern wollte. Hier
hilft folgendes kleines Skript:
</p>
        <div>
          <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
            <span style="color: #0000ff">select</span>
            <span style="color: #0000ff">CASE</span> LEN(ResponsibleName) <span style="color: #0000ff">WHEN</span> 0 <span style="color: #0000ff">THEN</span> ResponsibleName <span style="color: #0000ff">ELSE</span><span style="color: #0000ff">SUBSTRING</span>(ResponsibleName,
charindex ( <span style="color: #006080">','</span>, ResponsibleName )+2, len(ResponsibleName))
+ <span style="color: #006080">', '</span> + <span style="color: #0000ff">SUBSTRING</span>(ResponsibleName,
1, charindex ( <span style="color: #006080">','</span>, ResponsibleName )-1) <span style="color: #0000ff">END</span><span style="color: #0000ff">from</span> data</pre>
        </div>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=5fa2e528-69b4-4325-a2a2-78e96d527391" />
      </body>
      <title>Mit T-SQL Vor- und Nachname vertauschen</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,5fa2e528-69b4-4325-a2a2-78e96d527391.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,5fa2e528-69b4-4325-a2a2-78e96d527391.aspx</link>
      <pubDate>Sun, 05 Oct 2008 09:48:07 GMT</pubDate>
      <description>&lt;p&gt;
Ich hatte gerade das Problem, dass in einem Feld in der Datenbank Einträge wie z.B.
"Thomas, Schissler" standen und ich die in "Schissler, Thomas" ändern wollte. Hier
hilft folgendes kleines Skript:
&lt;/p&gt;
&lt;div&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;select&lt;/span&gt; &lt;span style="color: #0000ff"&gt;CASE&lt;/span&gt; LEN(ResponsibleName) &lt;span style="color: #0000ff"&gt;WHEN&lt;/span&gt; 0 &lt;span style="color: #0000ff"&gt;THEN&lt;/span&gt; ResponsibleName &lt;span style="color: #0000ff"&gt;ELSE&lt;/span&gt; &lt;span style="color: #0000ff"&gt;SUBSTRING&lt;/span&gt;(ResponsibleName,
charindex ( &lt;span style="color: #006080"&gt;','&lt;/span&gt;, ResponsibleName )+2, len(ResponsibleName))
+ &lt;span style="color: #006080"&gt;', '&lt;/span&gt; + &lt;span style="color: #0000ff"&gt;SUBSTRING&lt;/span&gt;(ResponsibleName,
1, charindex ( &lt;span style="color: #006080"&gt;','&lt;/span&gt;, ResponsibleName )-1) &lt;span style="color: #0000ff"&gt;END&lt;/span&gt; &lt;span style="color: #0000ff"&gt;from&lt;/span&gt; data&lt;/pre&gt;
&lt;/div&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=5fa2e528-69b4-4325-a2a2-78e96d527391" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,5fa2e528-69b4-4325-a2a2-78e96d527391.aspx</comments>
      <category>SQL</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=c39cc8d7-1e1b-40d1-ba3a-1f87556374ca</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,c39cc8d7-1e1b-40d1-ba3a-1f87556374ca.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,c39cc8d7-1e1b-40d1-ba3a-1f87556374ca.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=c39cc8d7-1e1b-40d1-ba3a-1f87556374ca</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
In einem früheren <a href="http://www.artiso.com/ProBlog/PermaLink,guid,dbf52623-b452-423f-b289-49929a9e4791.aspx">Beitrag</a> habe
ich beschrieben, wie man kleinere Listen mit LINQ effizien speichern kann. Hierzu
verwende ich einfach ein XML-Feld in der entsprechenden Tabelle und lege die Liste
dann dort als XML-Serialisierung ab. Nun stand ich vor der Herausforderung, dass ich
direkt auf der Datenbank dieses Feld abfragen wollte. Glücklicherweise beitet T-SQL
eine sehr gute XML-Unterstützung, unglücklicherweise gibt es eine vielzahl von Techniken
dies zu tun und die Treffer meiner Internetrecherche waren sehr unübersichtlich. Deshalb
hier nochmals kurz zusammengefasst, wie ich das gelöst habe.
</p>
        <p>
Ich habe in einem Feld folgenden XML-Inhalt der ein Dictionary mit 5 Einträgen repräsentiert:
</p>
        <div>
          <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
            <span style="color: #0000ff">&lt;</span>
            <span style="color: #800000">Root</span>
            <span style="color: #0000ff">&gt;</span>
            <span style="color: #0000ff">&lt;</span>
            <span style="color: #800000">item</span>
            <span style="color: #0000ff">&gt;</span>
            <span style="color: #0000ff">&lt;</span>
            <span style="color: #800000">key</span>
            <span style="color: #0000ff">&gt;</span>
            <span style="color: #0000ff">&lt;</span>
            <span style="color: #800000">int</span>
            <span style="color: #0000ff">&gt;</span>1<span style="color: #0000ff">&lt;/</span><span style="color: #800000">int</span><span style="color: #0000ff">&gt;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">key</span><span style="color: #0000ff">&gt;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">decimal</span><span style="color: #0000ff">&gt;</span>17.00<span style="color: #0000ff">&lt;/</span><span style="color: #800000">decimal</span><span style="color: #0000ff">&gt;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">item</span><span style="color: #0000ff">&gt;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">item</span><span style="color: #0000ff">&gt;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">key</span><span style="color: #0000ff">&gt;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">int</span><span style="color: #0000ff">&gt;</span>2<span style="color: #0000ff">&lt;/</span><span style="color: #800000">int</span><span style="color: #0000ff">&gt;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">key</span><span style="color: #0000ff">&gt;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">decimal</span><span style="color: #0000ff">&gt;</span>17.81<span style="color: #0000ff">&lt;/</span><span style="color: #800000">decimal</span><span style="color: #0000ff">&gt;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">item</span><span style="color: #0000ff">&gt;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">item</span><span style="color: #0000ff">&gt;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">key</span><span style="color: #0000ff">&gt;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">int</span><span style="color: #0000ff">&gt;</span>3<span style="color: #0000ff">&lt;/</span><span style="color: #800000">int</span><span style="color: #0000ff">&gt;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">key</span><span style="color: #0000ff">&gt;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">decimal</span><span style="color: #0000ff">&gt;</span>18.62<span style="color: #0000ff">&lt;/</span><span style="color: #800000">decimal</span><span style="color: #0000ff">&gt;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">item</span><span style="color: #0000ff">&gt;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">item</span><span style="color: #0000ff">&gt;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">key</span><span style="color: #0000ff">&gt;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">int</span><span style="color: #0000ff">&gt;</span>4<span style="color: #0000ff">&lt;/</span><span style="color: #800000">int</span><span style="color: #0000ff">&gt;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">key</span><span style="color: #0000ff">&gt;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">decimal</span><span style="color: #0000ff">&gt;</span>19.43<span style="color: #0000ff">&lt;/</span><span style="color: #800000">decimal</span><span style="color: #0000ff">&gt;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">item</span><span style="color: #0000ff">&gt;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">item</span><span style="color: #0000ff">&gt;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">key</span><span style="color: #0000ff">&gt;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">int</span><span style="color: #0000ff">&gt;</span>5<span style="color: #0000ff">&lt;/</span><span style="color: #800000">int</span><span style="color: #0000ff">&gt;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">key</span><span style="color: #0000ff">&gt;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">decimal</span><span style="color: #0000ff">&gt;</span>20.24<span style="color: #0000ff">&lt;/</span><span style="color: #800000">decimal</span><span style="color: #0000ff">&gt;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">item</span><span style="color: #0000ff">&gt;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">Root</span><span style="color: #0000ff">&gt;</span></pre>
        </div>
        <p>
 
</p>
        <p>
Die Struktur der XML-Daten ist bei allen Datensätzen gleich. Nun wollte ich diese
Werte in 5 separaten Spalten ausgeben um diese einfachin Excel weiterverarbeiten zu
können. Das macht folgendes Skript:
</p>
        <div>
          <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
            <span style="color: #0000ff">SELECT</span> PackSIzeID,
Units, u1.l.<span style="color: #0000ff">value</span>(<span style="color: #006080">'decimal[1]'</span>,<span style="color: #006080">'Decimal(18,2)'</span>) <span style="color: #0000ff">AS</span> UnitsYear1,
u1.l.<span style="color: #0000ff">value</span>(<span style="color: #006080">'decimal[1]'</span>,<span style="color: #006080">'Decimal(18,2)'</span>) <span style="color: #0000ff">AS</span> UnitsYear2,
u1.l.<span style="color: #0000ff">value</span>(<span style="color: #006080">'decimal[1]'</span>,<span style="color: #006080">'Decimal(18,2)'</span>) <span style="color: #0000ff">AS</span> UnitsYear3,
u1.l.<span style="color: #0000ff">value</span>(<span style="color: #006080">'decimal[1]'</span>,<span style="color: #006080">'Decimal(18,2)'</span>) <span style="color: #0000ff">AS</span> UnitsYear4,
u1.l.<span style="color: #0000ff">value</span>(<span style="color: #006080">'decimal[1]'</span>,<span style="color: #006080">'Decimal(18,2)'</span>) <span style="color: #0000ff">AS</span> UnitsYear5 <span style="color: #0000ff">FROM</span> data_PackSizes <span style="color: #0000ff">CROSS</span> APPLY
Units.nodes(<span style="color: #006080">'//Root/item[1]/value'</span>) u1(l) <span style="color: #0000ff">CROSS</span> APPLY
Units.nodes(<span style="color: #006080">'//Root/item[2]/value'</span>) u2(l) <span style="color: #0000ff">CROSS</span> APPLY
Units.nodes(<span style="color: #006080">'//Root/item[3]/value'</span>) u3(l) <span style="color: #0000ff">CROSS</span> APPLY
Units.nodes(<span style="color: #006080">'//Root/item[4]/value'</span>) u4(l) <span style="color: #0000ff">CROSS</span> APPLY
Units.nodes(<span style="color: #006080">'//Root/item[5]/value'</span>) u5(l)</pre>
        </div>
        <p>
          <br />
Hier kann ich die 5 values als separate Nodes adressieren und dann in der Feldliste
entsprechend auswählen. Das Ergebnis sieht dann so aus:<br /><a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/XMLFelderinT_SQLabfragen_A190/image_2.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="98" alt="image" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/XMLFelderinT_SQLabfragen_A190/image_thumb.png" width="837" border="0" /></a></p>
        <p>
Vielleicht geht das auch noch eleganter, aber für mich hat's erst mal funktioniert
und deshalb habe ich hier erst mal nicht mehr Zeit investiert.
</p>
        <p>
Weitere Infos zum Thema:
</p>
        <a href="http://www.sqlserverandxml.com/2007/12/xml-workshop-at-sql-server-central.html">SQL
XML-Workshop von Jacob Sebastian</a>
        <p>
          <a href="http://technet.microsoft.com/en-gb/library/ms345115.aspx">Technet-Whitepapaer:
XML Best Practices for Microsoft SQL Server 2005</a>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=c39cc8d7-1e1b-40d1-ba3a-1f87556374ca" />
      </body>
      <title>XML-Felder in T_SQL abfragen</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,c39cc8d7-1e1b-40d1-ba3a-1f87556374ca.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,c39cc8d7-1e1b-40d1-ba3a-1f87556374ca.aspx</link>
      <pubDate>Sun, 05 Oct 2008 09:29:54 GMT</pubDate>
      <description>&lt;p&gt;
In einem früheren &lt;a href="http://www.artiso.com/ProBlog/PermaLink,guid,dbf52623-b452-423f-b289-49929a9e4791.aspx"&gt;Beitrag&lt;/a&gt; habe
ich beschrieben, wie man kleinere Listen mit LINQ effizien speichern kann. Hierzu
verwende ich einfach ein XML-Feld in der entsprechenden Tabelle und lege die Liste
dann dort als XML-Serialisierung ab. Nun stand ich vor der Herausforderung, dass ich
direkt auf der Datenbank dieses Feld abfragen wollte. Glücklicherweise beitet T-SQL
eine sehr gute XML-Unterstützung, unglücklicherweise gibt es eine vielzahl von Techniken
dies zu tun und die Treffer meiner Internetrecherche waren sehr unübersichtlich. Deshalb
hier nochmals kurz zusammengefasst, wie ich das gelöst habe.
&lt;/p&gt;
&lt;p&gt;
Ich habe in einem Feld folgenden XML-Inhalt der ein Dictionary mit 5 Einträgen repräsentiert:
&lt;/p&gt;
&lt;div&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Root&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;item&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;key&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;int&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;1&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;int&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;key&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;value&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;decimal&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;17.00&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;decimal&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;value&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;item&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;item&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;key&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;int&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;2&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;int&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;key&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;value&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;decimal&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;17.81&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;decimal&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;value&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;item&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;item&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;key&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;int&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;3&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;int&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;key&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;value&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;decimal&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;18.62&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;decimal&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;value&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;item&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;item&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;key&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;int&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;4&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;int&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;key&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;value&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;decimal&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;19.43&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;decimal&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;value&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;item&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;item&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;key&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;int&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;5&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;int&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;key&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;value&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;decimal&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;20.24&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;decimal&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;value&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;item&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Root&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Die Struktur der XML-Daten ist bei allen Datensätzen gleich. Nun wollte ich diese
Werte in 5 separaten Spalten ausgeben um diese einfachin Excel weiterverarbeiten zu
können. Das macht folgendes Skript:
&lt;/p&gt;
&lt;div&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt; PackSIzeID,
Units, u1.l.&lt;span style="color: #0000ff"&gt;value&lt;/span&gt;(&lt;span style="color: #006080"&gt;'decimal[1]'&lt;/span&gt;,&lt;span style="color: #006080"&gt;'Decimal(18,2)'&lt;/span&gt;) &lt;span style="color: #0000ff"&gt;AS&lt;/span&gt; UnitsYear1,
u1.l.&lt;span style="color: #0000ff"&gt;value&lt;/span&gt;(&lt;span style="color: #006080"&gt;'decimal[1]'&lt;/span&gt;,&lt;span style="color: #006080"&gt;'Decimal(18,2)'&lt;/span&gt;) &lt;span style="color: #0000ff"&gt;AS&lt;/span&gt; UnitsYear2,
u1.l.&lt;span style="color: #0000ff"&gt;value&lt;/span&gt;(&lt;span style="color: #006080"&gt;'decimal[1]'&lt;/span&gt;,&lt;span style="color: #006080"&gt;'Decimal(18,2)'&lt;/span&gt;) &lt;span style="color: #0000ff"&gt;AS&lt;/span&gt; UnitsYear3,
u1.l.&lt;span style="color: #0000ff"&gt;value&lt;/span&gt;(&lt;span style="color: #006080"&gt;'decimal[1]'&lt;/span&gt;,&lt;span style="color: #006080"&gt;'Decimal(18,2)'&lt;/span&gt;) &lt;span style="color: #0000ff"&gt;AS&lt;/span&gt; UnitsYear4,
u1.l.&lt;span style="color: #0000ff"&gt;value&lt;/span&gt;(&lt;span style="color: #006080"&gt;'decimal[1]'&lt;/span&gt;,&lt;span style="color: #006080"&gt;'Decimal(18,2)'&lt;/span&gt;) &lt;span style="color: #0000ff"&gt;AS&lt;/span&gt; UnitsYear5 &lt;span style="color: #0000ff"&gt;FROM&lt;/span&gt; data_PackSizes &lt;span style="color: #0000ff"&gt;CROSS&lt;/span&gt; APPLY
Units.nodes(&lt;span style="color: #006080"&gt;'//Root/item[1]/value'&lt;/span&gt;) u1(l) &lt;span style="color: #0000ff"&gt;CROSS&lt;/span&gt; APPLY
Units.nodes(&lt;span style="color: #006080"&gt;'//Root/item[2]/value'&lt;/span&gt;) u2(l) &lt;span style="color: #0000ff"&gt;CROSS&lt;/span&gt; APPLY
Units.nodes(&lt;span style="color: #006080"&gt;'//Root/item[3]/value'&lt;/span&gt;) u3(l) &lt;span style="color: #0000ff"&gt;CROSS&lt;/span&gt; APPLY
Units.nodes(&lt;span style="color: #006080"&gt;'//Root/item[4]/value'&lt;/span&gt;) u4(l) &lt;span style="color: #0000ff"&gt;CROSS&lt;/span&gt; APPLY
Units.nodes(&lt;span style="color: #006080"&gt;'//Root/item[5]/value'&lt;/span&gt;) u5(l)&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;br&gt;
Hier kann ich die 5 values als separate Nodes adressieren und dann in der Feldliste
entsprechend auswählen. Das Ergebnis sieht dann so aus:&lt;br&gt;
&lt;a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/XMLFelderinT_SQLabfragen_A190/image_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="98" alt="image" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/XMLFelderinT_SQLabfragen_A190/image_thumb.png" width="837" border="0"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Vielleicht geht das auch noch eleganter, aber für mich hat's erst mal funktioniert
und deshalb habe ich hier erst mal nicht mehr Zeit investiert.
&lt;/p&gt;
&lt;p&gt;
Weitere Infos zum Thema:
&lt;/p&gt;
&lt;a href="http://www.sqlserverandxml.com/2007/12/xml-workshop-at-sql-server-central.html"&gt;SQL
XML-Workshop von Jacob Sebastian&lt;/a&gt; 
&lt;p&gt;
&lt;a href="http://technet.microsoft.com/en-gb/library/ms345115.aspx"&gt;Technet-Whitepapaer:
XML Best Practices for Microsoft SQL Server 2005&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=c39cc8d7-1e1b-40d1-ba3a-1f87556374ca" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,c39cc8d7-1e1b-40d1-ba3a-1f87556374ca.aspx</comments>
      <category>SQL</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=f164354c-7279-4936-8c3c-60bbb07a3aec</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,f164354c-7279-4936-8c3c-60bbb07a3aec.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,f164354c-7279-4936-8c3c-60bbb07a3aec.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=f164354c-7279-4936-8c3c-60bbb07a3aec</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Um SQL-Projekte aus dem Management-Studio mit der Versionsverwaltung des Team Foundation
Server zu verwalten gibt es einen recht einfachen Weg. Zunächst muss der <a href="http://www.microsoft.com/downloads/details.aspx?familyid=FAEB7636-644E-451A-90D4-7947217DA0E7&amp;displaylang=en" target="_blank">MSSCCI-Provider</a> installiert
werden. Dann geht man im Management-Studio unter Tools / Options auf Source_Control
und prüft, ob der richtige Provider eingestellt ist.
</p>
        <p>
          <a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/SQLManagementStudio2005mitTeamFoundation_90B4/image_2.png">
            <img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="246" alt="image" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/SQLManagementStudio2005mitTeamFoundation_90B4/image_thumb.png" width="422" border="0" />
          </a>
        </p>
        <p>
Dann kann man seine Management-Studio Projekte einfach in die Quellcode-Verwaltung
einfügen, wie man das aus Visual Studio gewohnt ist. Also einfach rechte Maustaste
auf die Solution und Add Solution to Source Control.
</p>
        <p>
          <a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/SQLManagementStudio2005mitTeamFoundation_90B4/image_4.png">
            <img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="162" alt="image" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/SQLManagementStudio2005mitTeamFoundation_90B4/image_thumb_1.png" width="244" border="0" />
          </a>
        </p>
        <p>
Nach der Auswahl des Servers und erfolgter Anmeldung wählt man den Ordner in der Versionsverwaltung
aus.
</p>
        <p>
          <a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/SQLManagementStudio2005mitTeamFoundation_90B4/image_6.png">
            <img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="376" alt="image" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/SQLManagementStudio2005mitTeamFoundation_90B4/image_thumb_2.png" width="325" border="0" />
          </a>
        </p>
        <p>
Und schon kann man seine SQL-Scripts in der Versionsverwaltung auschecken, einchecken
etc.
</p>
        <p>
          <a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/SQLManagementStudio2005mitTeamFoundation_90B4/image_8.png">
            <img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="157" alt="image" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/SQLManagementStudio2005mitTeamFoundation_90B4/image_thumb_3.png" width="241" border="0" />
          </a>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=f164354c-7279-4936-8c3c-60bbb07a3aec" />
      </body>
      <title>SQL Management-Studio 2005 mit Team Foundation Server</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,f164354c-7279-4936-8c3c-60bbb07a3aec.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,f164354c-7279-4936-8c3c-60bbb07a3aec.aspx</link>
      <pubDate>Fri, 29 Feb 2008 09:17:25 GMT</pubDate>
      <description>&lt;p&gt;
Um SQL-Projekte aus dem Management-Studio mit der Versionsverwaltung des Team Foundation
Server zu verwalten gibt es einen recht einfachen Weg. Zunächst muss der &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=FAEB7636-644E-451A-90D4-7947217DA0E7&amp;amp;displaylang=en" target="_blank"&gt;MSSCCI-Provider&lt;/a&gt; installiert
werden. Dann geht man im Management-Studio unter Tools / Options auf Source_Control
und prüft, ob der richtige Provider eingestellt ist.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/SQLManagementStudio2005mitTeamFoundation_90B4/image_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="246" alt="image" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/SQLManagementStudio2005mitTeamFoundation_90B4/image_thumb.png" width="422" border="0"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Dann kann man seine Management-Studio Projekte einfach in die Quellcode-Verwaltung
einfügen, wie man das aus Visual Studio gewohnt ist. Also einfach rechte Maustaste
auf die Solution und Add Solution to Source Control.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/SQLManagementStudio2005mitTeamFoundation_90B4/image_4.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="162" alt="image" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/SQLManagementStudio2005mitTeamFoundation_90B4/image_thumb_1.png" width="244" border="0"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Nach der Auswahl des Servers und erfolgter Anmeldung wählt man den Ordner in der Versionsverwaltung
aus.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/SQLManagementStudio2005mitTeamFoundation_90B4/image_6.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="376" alt="image" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/SQLManagementStudio2005mitTeamFoundation_90B4/image_thumb_2.png" width="325" border="0"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Und schon kann man seine SQL-Scripts in der Versionsverwaltung auschecken, einchecken
etc.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/SQLManagementStudio2005mitTeamFoundation_90B4/image_8.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="157" alt="image" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/SQLManagementStudio2005mitTeamFoundation_90B4/image_thumb_3.png" width="241" border="0"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=f164354c-7279-4936-8c3c-60bbb07a3aec" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,f164354c-7279-4936-8c3c-60bbb07a3aec.aspx</comments>
      <category>SQL;Team System Server</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=bcd53432-101e-4eb8-9060-5fe05240abdd</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,bcd53432-101e-4eb8-9060-5fe05240abdd.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,bcd53432-101e-4eb8-9060-5fe05240abdd.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=bcd53432-101e-4eb8-9060-5fe05240abdd</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Habe gerade einen guten Tipp gefunden. Über eine entsprechende Optionseinstellung
kann man im Management-Studio beim Copy &amp; Paste die Spaltenüberschriften der Results
mit kopieren.
</p>
        <p>
          <a href="http://blog.schelian.de/CommentView,guid,C480B26D-8AB7-42D9-AEDE-19E77E542A1B.aspx#ac7520ed-c6b1-4ec9-84a7-005b85506027">HP's
Blog - Microsoft SQL Server Management Studio - Spaltenüberschriften fehlen beim kopieren
der Abfrageergebnisse</a>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=bcd53432-101e-4eb8-9060-5fe05240abdd" />
      </body>
      <title>Microsoft SQL Server Management Studio - Spalten&amp;uuml;berschriften fehlen beim kopieren der Abfrageergebnisse</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,bcd53432-101e-4eb8-9060-5fe05240abdd.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,bcd53432-101e-4eb8-9060-5fe05240abdd.aspx</link>
      <pubDate>Thu, 14 Feb 2008 22:17:21 GMT</pubDate>
      <description>&lt;p&gt;
Habe gerade einen guten Tipp gefunden. Über eine entsprechende Optionseinstellung
kann man im Management-Studio beim Copy &amp;amp; Paste die Spaltenüberschriften der Results
mit kopieren.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.schelian.de/CommentView,guid,C480B26D-8AB7-42D9-AEDE-19E77E542A1B.aspx#ac7520ed-c6b1-4ec9-84a7-005b85506027"&gt;HP's
Blog - Microsoft SQL Server Management Studio - Spaltenüberschriften fehlen beim kopieren
der Abfrageergebnisse&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=bcd53432-101e-4eb8-9060-5fe05240abdd" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,bcd53432-101e-4eb8-9060-5fe05240abdd.aspx</comments>
      <category>SQL;Tipps und Tricks</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=f206f95b-9031-4c09-9777-c81dd256e96d</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,f206f95b-9031-4c09-9777-c81dd256e96d.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,f206f95b-9031-4c09-9777-c81dd256e96d.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=f206f95b-9031-4c09-9777-c81dd256e96d</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Schick ist es, wenn man in der Anwendung demBenutzer die verfügbaren SQL-Server als
Auswahl anzeigt. Die kann man mit folgendem Code bewerkstelligen:
</p>
        <div>
          <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
            <span style="color: #0000ff">using</span> System; <span style="color: #0000ff">using</span> System.Collections.Generic; <span style="color: #0000ff">using</span> System.ComponentModel; <span style="color: #0000ff">using</span> System.Data; <span style="color: #0000ff">using</span> System.Drawing; <span style="color: #0000ff">using</span> System.Text; <span style="color: #0000ff">using</span> System.Windows.Forms; <span style="color: #0000ff">namespace</span> SQLInstances
{ <span style="color: #0000ff">public</span><span style="color: #0000ff">partial</span><span style="color: #0000ff">class</span> Form1
: Form { <span style="color: #0000ff">public</span> Form1() { InitializeComponent();
} <span style="color: #0000ff">private</span><span style="color: #0000ff">void</span> Form1_Load(<span style="color: #0000ff">object</span> sender,
EventArgs e) { DataTable dataTable = System.Data.Sql.SqlDataSourceEnumerator.Instance.GetDataSources(); <span style="color: #0000ff">foreach</span> (DataRow
datarow <span style="color: #0000ff">in</span> dataTable.Rows) { <span style="color: #0000ff">string</span> datasource
= datarow[<span style="color: #006080">"ServerName"</span>].ToString(); <span style="color: #0000ff">if</span> (datarow[<span style="color: #006080">"InstanceName"</span>]
!= DBNull.Value) { datasource += String.Format(<span style="color: #006080">"\\{0}"</span>,
datarow[<span style="color: #006080">"InstanceName"</span>]); ComboBox1.Items.Add(datasource);
} DataGridView1.DataSource = dataTable; } } } }</pre>
        </div>
        <p>
 
</p>
        <p>
Das Beispiel gibt die verfügbaren SQL-Server in einem GridVie aus.
</p>
        <p>
Um auch Zuisatzinformationen wie Version etc. zu erhalten, muss auf dem SQL-Server
der SQL-Browser laufen:
</p>
        <p>
          <a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/VerfgbareSQLServerimNetzabfragen_12C00/clip_image001_2.jpg">
            <img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="229" alt="clip_image001" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/VerfgbareSQLServerimNetzabfragen_12C00/clip_image001_thumb.jpg" width="612" border="0" />
          </a>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=f206f95b-9031-4c09-9777-c81dd256e96d" />
      </body>
      <title>Verf&amp;uuml;gbare SQL-Server im Netz abfragen</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,f206f95b-9031-4c09-9777-c81dd256e96d.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,f206f95b-9031-4c09-9777-c81dd256e96d.aspx</link>
      <pubDate>Sun, 30 Dec 2007 20:20:27 GMT</pubDate>
      <description>&lt;p&gt;
Schick ist es, wenn man in der Anwendung demBenutzer die verfügbaren SQL-Server als
Auswahl anzeigt. Die kann man mit folgendem Code bewerkstelligen:
&lt;/p&gt;
&lt;div&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System; &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.Collections.Generic; &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.ComponentModel; &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.Data; &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.Drawing; &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.Text; &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.Windows.Forms; &lt;span style="color: #0000ff"&gt;namespace&lt;/span&gt; SQLInstances
{ &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;partial&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; Form1
: Form { &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; Form1() { InitializeComponent();
} &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; Form1_Load(&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; sender,
EventArgs e) { DataTable dataTable = System.Data.Sql.SqlDataSourceEnumerator.Instance.GetDataSources(); &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; (DataRow
datarow &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; dataTable.Rows) { &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; datasource
= datarow[&lt;span style="color: #006080"&gt;"ServerName"&lt;/span&gt;].ToString(); &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (datarow[&lt;span style="color: #006080"&gt;"InstanceName"&lt;/span&gt;]
!= DBNull.Value) { datasource += String.Format(&lt;span style="color: #006080"&gt;"\\{0}"&lt;/span&gt;,
datarow[&lt;span style="color: #006080"&gt;"InstanceName"&lt;/span&gt;]); ComboBox1.Items.Add(datasource);
} DataGridView1.DataSource = dataTable; } } } }&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Das Beispiel gibt die verfügbaren SQL-Server in einem GridVie aus.
&lt;/p&gt;
&lt;p&gt;
Um auch Zuisatzinformationen wie Version etc. zu erhalten, muss auf dem SQL-Server
der SQL-Browser laufen:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/VerfgbareSQLServerimNetzabfragen_12C00/clip_image001_2.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="229" alt="clip_image001" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/VerfgbareSQLServerimNetzabfragen_12C00/clip_image001_thumb.jpg" width="612" border="0"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=f206f95b-9031-4c09-9777-c81dd256e96d" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,f206f95b-9031-4c09-9777-c81dd256e96d.aspx</comments>
      <category>SQL;Tipps und Tricks</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=e66e090f-b306-4651-8964-15c487a1e850</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,e66e090f-b306-4651-8964-15c487a1e850.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,e66e090f-b306-4651-8964-15c487a1e850.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=e66e090f-b306-4651-8964-15c487a1e850</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Noch ein Update zu meinem vorhergehenden <a href="http://www.artiso.com/ProBlog/PermaLink,guid,604486b7-d6e3-4825-9453-19a1233c17fd.aspx" target="_blank">Post</a>.
Man kann sich den Wizard, den ich dort als Bestandteil von Visual Studio 2008 beschrieben
habe, auch separat runterladen und als eigenständiges Tool oder integriert in VS2005
ausführen.
</p>
        <p>
          <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=56E5B1C5-BF17-42E0-A410-371A838E570A&amp;displaylang=de">Downloaddetails:
SQL Server Database Publishing Wizard 1.1</a>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=e66e090f-b306-4651-8964-15c487a1e850" />
      </body>
      <title>SQL Server Database Publishing Wizard 1.1</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,e66e090f-b306-4651-8964-15c487a1e850.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,e66e090f-b306-4651-8964-15c487a1e850.aspx</link>
      <pubDate>Fri, 23 Nov 2007 10:13:25 GMT</pubDate>
      <description>&lt;p&gt;
Noch ein Update zu meinem vorhergehenden &lt;a href="http://www.artiso.com/ProBlog/PermaLink,guid,604486b7-d6e3-4825-9453-19a1233c17fd.aspx" target="_blank"&gt;Post&lt;/a&gt;.
Man kann sich den Wizard, den ich dort als Bestandteil von Visual Studio 2008 beschrieben
habe, auch separat runterladen und als eigenständiges Tool oder integriert in VS2005
ausführen.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=56E5B1C5-BF17-42E0-A410-371A838E570A&amp;amp;displaylang=de"&gt;Downloaddetails:
SQL Server Database Publishing Wizard 1.1&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=e66e090f-b306-4651-8964-15c487a1e850" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,e66e090f-b306-4651-8964-15c487a1e850.aspx</comments>
      <category>SQL;VS 2005</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=604486b7-d6e3-4825-9453-19a1233c17fd</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,604486b7-d6e3-4825-9453-19a1233c17fd.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,604486b7-d6e3-4825-9453-19a1233c17fd.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=604486b7-d6e3-4825-9453-19a1233c17fd</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Bei unserem heutigen Treffen der <a href="http://www.dotet-ulm.de" target="_blank">.Net
Developer-Group Ulm</a> hatten wir einen Vortrag zum Thema SQL-Projekte. Dabei kam
die Frage auf, ob man Daten einer Datenbank nicht in ein SQL-Skript exportieren kann,
das dann alle Daten über Insert-Statements einfügen kann. Ich habe hierzu eine Lösung
in Visual Studio 2008 gefunden und das geht so:
</p>
        <p>
1.) Server Explorer öffnen und die entsprechende Verbindung rechts anklicken, dann 
"Publish to provider" auswählen.
</p>
        <p>
          <a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/DateneinerSQLDatenbankineinInsertScripte_285/image_2.png">
            <img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="305" alt="image" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/DateneinerSQLDatenbankineinInsertScripte_285/image_thumb.png" width="290" border="0" />
          </a>
        </p>
        <p>
2.) Dann die Datebank auswählen und darunter die Checkbox disablen (außer man will
wirklich die Datenbank komplett scripten).
</p>
        <p>
          <a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/DateneinerSQLDatenbankineinInsertScripte_285/image_4.png">
            <img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="301" alt="image" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/DateneinerSQLDatenbankineinInsertScripte_285/image_thumb_1.png" width="334" border="0" />
          </a>
        </p>
        <p>
3.) Die nächsten Schritte sind dann soweit selbsterklären. In dieser Maske kann man
dann auswählen, ob man Daten, Schema oder beides scripten möchte:
</p>
        <p>
          <a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/DateneinerSQLDatenbankineinInsertScripte_285/image_6.png">
            <img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="305" alt="image" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/DateneinerSQLDatenbankineinInsertScripte_285/image_thumb_2.png" width="338" border="0" />
          </a>
        </p>
        <p>
4. In dem erzeugten Script steht dan z.B. so etwas:
</p>
        <div>
          <pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; BORDER-BOTTOM-STYLE: none">INSERT [dbo].[Customers] ([CustomerID], [CompanyName], [ContactName], [ContactTitle], [Address], 
<br />
       [City], [Region], [PostalCode], [Country], [Phone],
[Fax]) <span style="COLOR: #0000ff">VALUES</span> (N<span style="COLOR: #006080">'ALFKI'</span>,
N<span style="COLOR: #006080">'Alfreds Futterkiste'</span>, N<span style="COLOR: #006080">'Maria
Anders'</span>, N<span style="COLOR: #006080">'Sales Representative'</span>, 
<br />
            N<span style="COLOR: #006080">'Obere
Str. 57'</span>, N<span style="COLOR: #006080">'Berlin'</span>, <span style="COLOR: #0000ff">NULL</span>,
N<span style="COLOR: #006080">'12209'</span>, N<span style="COLOR: #006080">'Germany'</span>,
N<span style="COLOR: #006080">'030-0074321'</span>, N<span style="COLOR: #006080">'030-0076545'</span>)
INSERT [dbo].[Customers] ([CustomerID], [CompanyName], [ContactName], [ContactTitle],
[Address], 
<br />
       [City], [Region], [PostalCode], [Country], [Phone],
[Fax]) <span style="COLOR: #0000ff">VALUES</span> (N<span style="COLOR: #006080">'ANATR'</span>,
N<span style="COLOR: #006080">'Ana Trujillo Emparedados y helados'</span>, N<span style="COLOR: #006080">'Ana
Trujillo'</span>, N<span style="COLOR: #006080">'Owner'</span>, 
<br />
            N<span style="COLOR: #006080">'Avda.
de la Constitución 2222'</span>, N<span style="COLOR: #006080">'México D.F.'</span>, <span style="COLOR: #0000ff">NULL</span>,
N<span style="COLOR: #006080">'05021'</span>, N<span style="COLOR: #006080">'Mexico'</span>,
N<span style="COLOR: #006080">'(5) 555-4729'</span>, N<span style="COLOR: #006080">'(5)
555-3745'</span>) INSERT [dbo].[Customers] ([CustomerID], [CompanyName], [ContactName],
[ContactTitle], [Address],<br />
       [City], [Region], [PostalCode], [Country], [Phone],
[Fax]) <span style="COLOR: #0000ff">VALUES</span> (N<span style="COLOR: #006080">'ANTON'</span>,
N<span style="COLOR: #006080">'Antonio Moreno Taquería'</span>, N<span style="COLOR: #006080">'Antonio
Moreno'</span>, N<span style="COLOR: #006080">'Owner'</span>, 
<br />
            N<span style="COLOR: #006080">'Mataderos
2312'</span>, N<span style="COLOR: #006080">'México D.F.'</span>, <span style="COLOR: #0000ff">NULL</span>,
N<span style="COLOR: #006080">'05023'</span>, N<span style="COLOR: #006080">'Mexico'</span>,
N<span style="COLOR: #006080">'(5) 555-3932'</span>, <span style="COLOR: #0000ff">NULL</span>)
INSERT [dbo].[Customers] ([CustomerID], [CompanyName], [ContactName], [ContactTitle],
[Address], 
<br />
       [City], [Region], [PostalCode], [Country], [Phone],
[Fax]) <span style="COLOR: #0000ff">VALUES</span> (N<span style="COLOR: #006080">'AROUT'</span>,
N<span style="COLOR: #006080">'Around the Horn'</span>, N<span style="COLOR: #006080">'Thomas
Hardy'</span>, N<span style="COLOR: #006080">'Sales Representative'</span>, N<span style="COLOR: #006080">'120
Hanover Sq.'</span>, 
<br />
            N<span style="COLOR: #006080">'London'</span>, <span style="COLOR: #0000ff">NULL</span>,
N<span style="COLOR: #006080">'WA1 1DP'</span>, N<span style="COLOR: #006080">'UK'</span>,
N<span style="COLOR: #006080">'(171) 555-7788'</span>, N<span style="COLOR: #006080">'(171)
555-6750'</span>) INSERT [dbo].[Customers] ([CustomerID], [CompanyName], [ContactName],
[ContactTitle], [Address],<br />
       [City], [Region], [PostalCode], [Country], [Phone],
[Fax]) <span style="COLOR: #0000ff">VALUES</span> (N<span style="COLOR: #006080">'BERGS'</span>,
N<span style="COLOR: #006080">'Berglunds snabbköp'</span>, N<span style="COLOR: #006080">'Christina
Berglund'</span>, N<span style="COLOR: #006080">'Order Administrator'</span>, 
<br />
            N<span style="COLOR: #006080">'Berguvsvägen
8'</span>, N<span style="COLOR: #006080">'Luleå'</span>, <span style="COLOR: #0000ff">NULL</span>,
N<span style="COLOR: #006080">'S-958 22'</span>, N<span style="COLOR: #006080">'Sweden'</span>,
N<span style="COLOR: #006080">'0921-12 34 65'</span>, N<span style="COLOR: #006080">'0921-12
34 67'</span>) INSERT [dbo].[Customers] ([CustomerID], [CompanyName], [ContactName],
[ContactTitle], [Address],<br />
       [City], [Region], [PostalCode], [Country], [Phone],
[Fax]) <span style="COLOR: #0000ff">VALUES</span> (N<span style="COLOR: #006080">'BLAUS'</span>,
N<span style="COLOR: #006080">'Blauer See Delikatessen'</span>, N<span style="COLOR: #006080">'Hanna
Moos'</span>, N<span style="COLOR: #006080">'Sales Representative'</span>,<br />
            N<span style="COLOR: #006080">'Forsterstr.
57'</span>, N<span style="COLOR: #006080">'Mannheim'</span>, <span style="COLOR: #0000ff">NULL</span>,
N<span style="COLOR: #006080">'68306'</span>, N<span style="COLOR: #006080">'Germany'</span>,
N<span style="COLOR: #006080">'0621-08460'</span>, N<span style="COLOR: #006080">'0621-08924'</span>)
INSERT [dbo].[Customers] ([CustomerID], [CompanyName], [ContactName], [ContactTitle],
[Address], 
<br />
       [City], [Region], [PostalCode], [Country], [Phone],
[Fax]) <span style="COLOR: #0000ff">VALUES</span> (N<span style="COLOR: #006080">'BLONP'</span>,
N<span style="COLOR: #006080">'Blondesddsl père et fils'</span>, N<span style="COLOR: #006080">'Frédérique
Citeaux'</span>, N<span style="COLOR: #006080">'Marketing Manager'</span>, 
<br />
            N<span style="COLOR: #006080">'24,
place Kléber'</span>, N<span style="COLOR: #006080">'Strasbourg'</span>, <span style="COLOR: #0000ff">NULL</span>,
N<span style="COLOR: #006080">'67000'</span>, N<span style="COLOR: #006080">'France'</span>,
N<span style="COLOR: #006080">'88.60.15.31'</span>, N<span style="COLOR: #006080">'88.60.15.32'</span>)
INSERT [dbo].[Customers] ([CustomerID], [CompanyName], [ContactName], [ContactTitle],
[Address], 
<br />
       [City], [Region], [PostalCode], [Country], [Phone],
[Fax]) <span style="COLOR: #0000ff">VALUES</span> (N<span style="COLOR: #006080">'BOLID'</span>,
N<span style="COLOR: #006080">'Bólido Comidas preparadas'</span>, N<span style="COLOR: #006080">'Martín
Sommer'</span>, N<span style="COLOR: #006080">'Owner'</span>, N<span style="COLOR: #006080">'C/
Araquil, 67'</span>, 
<br />
            N<span style="COLOR: #006080">'Madrid'</span>, <span style="COLOR: #0000ff">NULL</span>,
N<span style="COLOR: #006080">'28023'</span>, N<span style="COLOR: #006080">'Spain'</span>,
N<span style="COLOR: #006080">'(91) 555 22 82'</span>, N<span style="COLOR: #006080">'(91)
555 91 99'</span>) INSERT [dbo].[Customers] ([CustomerID], [CompanyName], [ContactName],
[ContactTitle], [Address], 
<br />
       [City], [Region], [PostalCode], [Country], [Phone],
[Fax]) <span style="COLOR: #0000ff">VALUES</span> (N<span style="COLOR: #006080">'BONAP'</span>,
N<span style="COLOR: #006080">'Bon app'</span><span style="COLOR: #006080">''</span>,
N<span style="COLOR: #006080">'Laurence Lebihan'</span>, N<span style="COLOR: #006080">'Owner'</span>,
N<span style="COLOR: #006080">'12, rue des Bouchers'</span>, 
<br />
            N<span style="COLOR: #006080">'Marseille'</span>, <span style="COLOR: #0000ff">NULL</span>,
N<span style="COLOR: #006080">'13008'</span>, N<span style="COLOR: #006080">'France'</span>,
N<span style="COLOR: #006080">'91.24.45.40'</span>, N<span style="COLOR: #006080">'91.24.45.41'</span>) </pre>
        </div>
        <p>
Das Script lässt sich dann wunderbar in Datenbankprojekte einbauen und in der Quellcode
verwqlten. Dies bietet z.B. eine gute Möglichkeit, um Testdaten für die Durchführung
von Tests mit der jeweiligen Anwendungs-Version in der Quellcode-Verwaltung zu verwalten.
</p>
        <p>
In Visual Studio 2005 funktioniert das leider nicht. Dort muss auf entsprechende Tools
zurückgegriffen werden, z.B. den kostenlosen Oracle SQL Developer <a href="http://www.oracle.com/technology/products/database/sql_developer/index.html">http://www.oracle.com/technology/products/database/sql_developer/index.html</a> der
übrigens auch mit SQL-Server funktioniert ;-)
</p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=604486b7-d6e3-4825-9453-19a1233c17fd" />
      </body>
      <title>Daten einer SQL-Datenbank in ein Insert-Script exportieren</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,604486b7-d6e3-4825-9453-19a1233c17fd.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,604486b7-d6e3-4825-9453-19a1233c17fd.aspx</link>
      <pubDate>Thu, 22 Nov 2007 23:11:53 GMT</pubDate>
      <description>&lt;p&gt;
Bei unserem heutigen Treffen der &lt;a href="http://www.dotet-ulm.de" target=_blank&gt;.Net
Developer-Group Ulm&lt;/a&gt; hatten wir einen Vortrag zum Thema SQL-Projekte. Dabei kam
die Frage auf, ob man Daten einer Datenbank nicht in ein SQL-Skript exportieren kann,
das dann alle Daten über Insert-Statements einfügen kann. Ich habe hierzu eine Lösung
in Visual Studio 2008 gefunden und das geht so:
&lt;/p&gt;
&lt;p&gt;
1.) Server Explorer öffnen und die entsprechende Verbindung rechts anklicken, dann&amp;nbsp;
"Publish to provider" auswählen.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/DateneinerSQLDatenbankineinInsertScripte_285/image_2.png"&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=305 alt=image src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/DateneinerSQLDatenbankineinInsertScripte_285/image_thumb.png" width=290 border=0&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
2.) Dann die Datebank auswählen und darunter die Checkbox disablen (außer man will
wirklich die Datenbank komplett scripten).
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/DateneinerSQLDatenbankineinInsertScripte_285/image_4.png"&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=301 alt=image src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/DateneinerSQLDatenbankineinInsertScripte_285/image_thumb_1.png" width=334 border=0&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
3.) Die nächsten Schritte sind dann soweit selbsterklären. In dieser Maske kann man
dann auswählen, ob man Daten, Schema oder beides scripten möchte:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/DateneinerSQLDatenbankineinInsertScripte_285/image_6.png"&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=305 alt=image src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/DateneinerSQLDatenbankineinInsertScripte_285/image_thumb_2.png" width=338 border=0&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
4. In dem erzeugten Script steht dan z.B. so etwas:
&lt;/p&gt;
&lt;div&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 8pt; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; FONT-FAMILY: consolas, 'Courier New', courier, monospace; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; BORDER-BOTTOM-STYLE: none"&gt;INSERT [dbo].[Customers] ([CustomerID], [CompanyName], [ContactName], [ContactTitle], [Address], 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [City], [Region], [PostalCode], [Country], [Phone],
[Fax]) &lt;span style="COLOR: #0000ff"&gt;VALUES&lt;/span&gt; (N&lt;span style="COLOR: #006080"&gt;'ALFKI'&lt;/span&gt;,
N&lt;span style="COLOR: #006080"&gt;'Alfreds Futterkiste'&lt;/span&gt;, N&lt;span style="COLOR: #006080"&gt;'Maria
Anders'&lt;/span&gt;, N&lt;span style="COLOR: #006080"&gt;'Sales Representative'&lt;/span&gt;, 
&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; N&lt;span style="COLOR: #006080"&gt;'Obere
Str. 57'&lt;/span&gt;, N&lt;span style="COLOR: #006080"&gt;'Berlin'&lt;/span&gt;, &lt;span style="COLOR: #0000ff"&gt;NULL&lt;/span&gt;,
N&lt;span style="COLOR: #006080"&gt;'12209'&lt;/span&gt;, N&lt;span style="COLOR: #006080"&gt;'Germany'&lt;/span&gt;,
N&lt;span style="COLOR: #006080"&gt;'030-0074321'&lt;/span&gt;, N&lt;span style="COLOR: #006080"&gt;'030-0076545'&lt;/span&gt;)
INSERT [dbo].[Customers] ([CustomerID], [CompanyName], [ContactName], [ContactTitle],
[Address], 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [City], [Region], [PostalCode], [Country], [Phone],
[Fax]) &lt;span style="COLOR: #0000ff"&gt;VALUES&lt;/span&gt; (N&lt;span style="COLOR: #006080"&gt;'ANATR'&lt;/span&gt;,
N&lt;span style="COLOR: #006080"&gt;'Ana Trujillo Emparedados y helados'&lt;/span&gt;, N&lt;span style="COLOR: #006080"&gt;'Ana
Trujillo'&lt;/span&gt;, N&lt;span style="COLOR: #006080"&gt;'Owner'&lt;/span&gt;, 
&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; N&lt;span style="COLOR: #006080"&gt;'Avda.
de la Constitución 2222'&lt;/span&gt;, N&lt;span style="COLOR: #006080"&gt;'México D.F.'&lt;/span&gt;, &lt;span style="COLOR: #0000ff"&gt;NULL&lt;/span&gt;,
N&lt;span style="COLOR: #006080"&gt;'05021'&lt;/span&gt;, N&lt;span style="COLOR: #006080"&gt;'Mexico'&lt;/span&gt;,
N&lt;span style="COLOR: #006080"&gt;'(5) 555-4729'&lt;/span&gt;, N&lt;span style="COLOR: #006080"&gt;'(5)
555-3745'&lt;/span&gt;) INSERT [dbo].[Customers] ([CustomerID], [CompanyName], [ContactName],
[ContactTitle], [Address],&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;[City], [Region], [PostalCode], [Country], [Phone],
[Fax]) &lt;span style="COLOR: #0000ff"&gt;VALUES&lt;/span&gt; (N&lt;span style="COLOR: #006080"&gt;'ANTON'&lt;/span&gt;,
N&lt;span style="COLOR: #006080"&gt;'Antonio Moreno Taquería'&lt;/span&gt;, N&lt;span style="COLOR: #006080"&gt;'Antonio
Moreno'&lt;/span&gt;, N&lt;span style="COLOR: #006080"&gt;'Owner'&lt;/span&gt;, 
&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; N&lt;span style="COLOR: #006080"&gt;'Mataderos
2312'&lt;/span&gt;, N&lt;span style="COLOR: #006080"&gt;'México D.F.'&lt;/span&gt;, &lt;span style="COLOR: #0000ff"&gt;NULL&lt;/span&gt;,
N&lt;span style="COLOR: #006080"&gt;'05023'&lt;/span&gt;, N&lt;span style="COLOR: #006080"&gt;'Mexico'&lt;/span&gt;,
N&lt;span style="COLOR: #006080"&gt;'(5) 555-3932'&lt;/span&gt;, &lt;span style="COLOR: #0000ff"&gt;NULL&lt;/span&gt;)
INSERT [dbo].[Customers] ([CustomerID], [CompanyName], [ContactName], [ContactTitle],
[Address], 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [City], [Region], [PostalCode], [Country], [Phone],
[Fax]) &lt;span style="COLOR: #0000ff"&gt;VALUES&lt;/span&gt; (N&lt;span style="COLOR: #006080"&gt;'AROUT'&lt;/span&gt;,
N&lt;span style="COLOR: #006080"&gt;'Around the Horn'&lt;/span&gt;, N&lt;span style="COLOR: #006080"&gt;'Thomas
Hardy'&lt;/span&gt;, N&lt;span style="COLOR: #006080"&gt;'Sales Representative'&lt;/span&gt;, N&lt;span style="COLOR: #006080"&gt;'120
Hanover Sq.'&lt;/span&gt;, 
&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; N&lt;span style="COLOR: #006080"&gt;'London'&lt;/span&gt;, &lt;span style="COLOR: #0000ff"&gt;NULL&lt;/span&gt;,
N&lt;span style="COLOR: #006080"&gt;'WA1 1DP'&lt;/span&gt;, N&lt;span style="COLOR: #006080"&gt;'UK'&lt;/span&gt;,
N&lt;span style="COLOR: #006080"&gt;'(171) 555-7788'&lt;/span&gt;, N&lt;span style="COLOR: #006080"&gt;'(171)
555-6750'&lt;/span&gt;) INSERT [dbo].[Customers] ([CustomerID], [CompanyName], [ContactName],
[ContactTitle], [Address],&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;[City], [Region], [PostalCode], [Country], [Phone],
[Fax]) &lt;span style="COLOR: #0000ff"&gt;VALUES&lt;/span&gt; (N&lt;span style="COLOR: #006080"&gt;'BERGS'&lt;/span&gt;,
N&lt;span style="COLOR: #006080"&gt;'Berglunds snabbköp'&lt;/span&gt;, N&lt;span style="COLOR: #006080"&gt;'Christina
Berglund'&lt;/span&gt;, N&lt;span style="COLOR: #006080"&gt;'Order Administrator'&lt;/span&gt;, 
&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; N&lt;span style="COLOR: #006080"&gt;'Berguvsvägen
8'&lt;/span&gt;, N&lt;span style="COLOR: #006080"&gt;'Luleå'&lt;/span&gt;, &lt;span style="COLOR: #0000ff"&gt;NULL&lt;/span&gt;,
N&lt;span style="COLOR: #006080"&gt;'S-958 22'&lt;/span&gt;, N&lt;span style="COLOR: #006080"&gt;'Sweden'&lt;/span&gt;,
N&lt;span style="COLOR: #006080"&gt;'0921-12 34 65'&lt;/span&gt;, N&lt;span style="COLOR: #006080"&gt;'0921-12
34 67'&lt;/span&gt;) INSERT [dbo].[Customers] ([CustomerID], [CompanyName], [ContactName],
[ContactTitle], [Address],&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;[City], [Region], [PostalCode], [Country], [Phone],
[Fax]) &lt;span style="COLOR: #0000ff"&gt;VALUES&lt;/span&gt; (N&lt;span style="COLOR: #006080"&gt;'BLAUS'&lt;/span&gt;,
N&lt;span style="COLOR: #006080"&gt;'Blauer See Delikatessen'&lt;/span&gt;, N&lt;span style="COLOR: #006080"&gt;'Hanna
Moos'&lt;/span&gt;, N&lt;span style="COLOR: #006080"&gt;'Sales Representative'&lt;/span&gt;,&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;N&lt;span style="COLOR: #006080"&gt;'Forsterstr.
57'&lt;/span&gt;, N&lt;span style="COLOR: #006080"&gt;'Mannheim'&lt;/span&gt;, &lt;span style="COLOR: #0000ff"&gt;NULL&lt;/span&gt;,
N&lt;span style="COLOR: #006080"&gt;'68306'&lt;/span&gt;, N&lt;span style="COLOR: #006080"&gt;'Germany'&lt;/span&gt;,
N&lt;span style="COLOR: #006080"&gt;'0621-08460'&lt;/span&gt;, N&lt;span style="COLOR: #006080"&gt;'0621-08924'&lt;/span&gt;)
INSERT [dbo].[Customers] ([CustomerID], [CompanyName], [ContactName], [ContactTitle],
[Address], 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [City], [Region], [PostalCode], [Country], [Phone],
[Fax]) &lt;span style="COLOR: #0000ff"&gt;VALUES&lt;/span&gt; (N&lt;span style="COLOR: #006080"&gt;'BLONP'&lt;/span&gt;,
N&lt;span style="COLOR: #006080"&gt;'Blondesddsl père et fils'&lt;/span&gt;, N&lt;span style="COLOR: #006080"&gt;'Frédérique
Citeaux'&lt;/span&gt;, N&lt;span style="COLOR: #006080"&gt;'Marketing Manager'&lt;/span&gt;, 
&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; N&lt;span style="COLOR: #006080"&gt;'24,
place Kléber'&lt;/span&gt;, N&lt;span style="COLOR: #006080"&gt;'Strasbourg'&lt;/span&gt;, &lt;span style="COLOR: #0000ff"&gt;NULL&lt;/span&gt;,
N&lt;span style="COLOR: #006080"&gt;'67000'&lt;/span&gt;, N&lt;span style="COLOR: #006080"&gt;'France'&lt;/span&gt;,
N&lt;span style="COLOR: #006080"&gt;'88.60.15.31'&lt;/span&gt;, N&lt;span style="COLOR: #006080"&gt;'88.60.15.32'&lt;/span&gt;)
INSERT [dbo].[Customers] ([CustomerID], [CompanyName], [ContactName], [ContactTitle],
[Address], 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [City], [Region], [PostalCode], [Country], [Phone],
[Fax]) &lt;span style="COLOR: #0000ff"&gt;VALUES&lt;/span&gt; (N&lt;span style="COLOR: #006080"&gt;'BOLID'&lt;/span&gt;,
N&lt;span style="COLOR: #006080"&gt;'Bólido Comidas preparadas'&lt;/span&gt;, N&lt;span style="COLOR: #006080"&gt;'Martín
Sommer'&lt;/span&gt;, N&lt;span style="COLOR: #006080"&gt;'Owner'&lt;/span&gt;, N&lt;span style="COLOR: #006080"&gt;'C/
Araquil, 67'&lt;/span&gt;, 
&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; N&lt;span style="COLOR: #006080"&gt;'Madrid'&lt;/span&gt;, &lt;span style="COLOR: #0000ff"&gt;NULL&lt;/span&gt;,
N&lt;span style="COLOR: #006080"&gt;'28023'&lt;/span&gt;, N&lt;span style="COLOR: #006080"&gt;'Spain'&lt;/span&gt;,
N&lt;span style="COLOR: #006080"&gt;'(91) 555 22 82'&lt;/span&gt;, N&lt;span style="COLOR: #006080"&gt;'(91)
555 91 99'&lt;/span&gt;) INSERT [dbo].[Customers] ([CustomerID], [CompanyName], [ContactName],
[ContactTitle], [Address], 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [City], [Region], [PostalCode], [Country], [Phone],
[Fax]) &lt;span style="COLOR: #0000ff"&gt;VALUES&lt;/span&gt; (N&lt;span style="COLOR: #006080"&gt;'BONAP'&lt;/span&gt;,
N&lt;span style="COLOR: #006080"&gt;'Bon app'&lt;/span&gt;&lt;span style="COLOR: #006080"&gt;''&lt;/span&gt;,
N&lt;span style="COLOR: #006080"&gt;'Laurence Lebihan'&lt;/span&gt;, N&lt;span style="COLOR: #006080"&gt;'Owner'&lt;/span&gt;,
N&lt;span style="COLOR: #006080"&gt;'12, rue des Bouchers'&lt;/span&gt;, 
&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; N&lt;span style="COLOR: #006080"&gt;'Marseille'&lt;/span&gt;, &lt;span style="COLOR: #0000ff"&gt;NULL&lt;/span&gt;,
N&lt;span style="COLOR: #006080"&gt;'13008'&lt;/span&gt;, N&lt;span style="COLOR: #006080"&gt;'France'&lt;/span&gt;,
N&lt;span style="COLOR: #006080"&gt;'91.24.45.40'&lt;/span&gt;, N&lt;span style="COLOR: #006080"&gt;'91.24.45.41'&lt;/span&gt;) &lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;
Das Script lässt sich dann wunderbar in Datenbankprojekte einbauen und in der Quellcode
verwqlten. Dies bietet z.B. eine gute Möglichkeit, um Testdaten für die Durchführung
von Tests mit der jeweiligen Anwendungs-Version in der Quellcode-Verwaltung zu verwalten.
&lt;/p&gt;
&lt;p&gt;
In Visual Studio 2005 funktioniert das leider nicht. Dort muss auf entsprechende Tools
zurückgegriffen werden, z.B. den kostenlosen Oracle SQL Developer &lt;a href="http://www.oracle.com/technology/products/database/sql_developer/index.html"&gt;http://www.oracle.com/technology/products/database/sql_developer/index.html&lt;/a&gt; der
übrigens auch mit SQL-Server funktioniert ;-)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=604486b7-d6e3-4825-9453-19a1233c17fd" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,604486b7-d6e3-4825-9453-19a1233c17fd.aspx</comments>
      <category>SQL;VS 2008</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=102fa38f-aeca-4fea-a894-251d1a5938cd</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,102fa38f-aeca-4fea-a894-251d1a5938cd.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,102fa38f-aeca-4fea-a894-251d1a5938cd.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=102fa38f-aeca-4fea-a894-251d1a5938cd</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://forums.asp.net/members/Scott-Mitchell.aspx">
            <em>
              <u>
                <font color="#0066cc">Scott
Mitchell</font>
              </u>
            </em>
          </a> hat 75 Tutorials zum Thema Data Access mit ASP.Net
2.0 geschrieben. Hier ist praktisch alles an Technologie beschrieben, was für die
Programmierung von datenbankbasierten Webanwendungen mit ASP.Net 2.0 notwendig ist.
Einzig LINQ wird momentan noch ausgespart. Eine wirklich tolle Sammlung an guten
Informationen.
</p>
        <p>
          <a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/ASP.Net2.0DataAccessTutorials_9BA5/image.png" atomicselection="true">
            <img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="373" alt="image" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/ASP.Net2.0DataAccessTutorials_9BA5/image_thumb.png" width="598" border="0" />
          </a>
        </p>
        <p>
          <a href="http://www.asp.net/learn/data-access/?lang=cs">Data Access Tutorials : The
Official Microsoft ASP.NET 2.0 Site</a>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=102fa38f-aeca-4fea-a894-251d1a5938cd" />
      </body>
      <title>ASP.Net 2.0 Data Access Tutorials</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,102fa38f-aeca-4fea-a894-251d1a5938cd.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,102fa38f-aeca-4fea-a894-251d1a5938cd.aspx</link>
      <pubDate>Thu, 16 Aug 2007 09:06:18 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://forums.asp.net/members/Scott-Mitchell.aspx"&gt;&lt;em&gt;&lt;u&gt;&lt;font color=#0066cc&gt;Scott
Mitchell&lt;/font&gt;&lt;/u&gt;&lt;/em&gt;&lt;/a&gt;&amp;nbsp;hat 75 Tutorials zum Thema Data Access mit ASP.Net
2.0 geschrieben. Hier ist praktisch alles an Technologie beschrieben, was für die
Programmierung von datenbankbasierten Webanwendungen mit ASP.Net 2.0 notwendig ist.
Einzig LINQ wird momentan noch ausgespart.&amp;nbsp;Eine wirklich tolle Sammlung an guten
Informationen.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/ASP.Net2.0DataAccessTutorials_9BA5/image.png" atomicselection="true"&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=373 alt=image src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/ASP.Net2.0DataAccessTutorials_9BA5/image_thumb.png" width=598 border=0&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.asp.net/learn/data-access/?lang=cs"&gt;Data Access Tutorials : The
Official Microsoft ASP.NET 2.0 Site&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=102fa38f-aeca-4fea-a894-251d1a5938cd" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,102fa38f-aeca-4fea-a894-251d1a5938cd.aspx</comments>
      <category>ADO.Net;ASP.Net;Know-How;Lernen;SQL</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=da96e299-698b-4f4d-b4d2-71cba3300ee0</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,da96e299-698b-4f4d-b4d2-71cba3300ee0.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,da96e299-698b-4f4d-b4d2-71cba3300ee0.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=da96e299-698b-4f4d-b4d2-71cba3300ee0</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Scott Gutherie hat in seinem Blog eine interessante Artikel-Serie zu LINQ to SQL 
</p>
        <blockquote>
          <p>
            <strong>
              <u>Data Access Improvements with LINQ to SQL</u>
            </strong>
          </p>
          <p>
LINQ to SQL is a built-in OR/M (object relational mapper) in .NET 3.5.  It enables
you to model relational databases using a .NET object model.  You can then
query the database using LINQ, as well as update/insert/delete data from it. 
LINQ to SQL fully supports transactions, views, and stored procedures.  It also
provides an easy way to integrate business logic and validation rules into your data
model.  Below are some of the articles I've written that explore how to use it:
</p>
          <ul>
            <li>
              <a href="http://weblogs.asp.net/scottgu/archive/2007/05/19/using-linq-to-sql-part-1.aspx" target="_blank">
                <u>
                  <font color="#800080">Part
1: Introduction to LINQ to SQL</font>
                </u>
              </a>
            </li>
            <li>
              <a href="http://weblogs.asp.net/scottgu/archive/2007/05/29/linq-to-sql-part-2-defining-our-data-model-classes.aspx" target="_blank">
                <u>
                  <font color="#0066cc">Part
2: Defining our Data Model Classes</font>
                </u>
              </a>
            </li>
            <li>
              <a href="http://weblogs.asp.net/scottgu/archive/2007/06/29/linq-to-sql-part-3-querying-our-database.aspx" target="_blank">
                <u>
                  <font color="#0066cc">Part
3: Querying our Database</font>
                </u>
              </a>
            </li>
            <li>
              <a href="http://weblogs.asp.net/scottgu/archive/2007/07/11/linq-to-sql-part-4-updating-our-database.aspx" target="_blank">
                <u>
                  <font color="#0066cc">Part
4: Updating our Database</font>
                </u>
              </a>
            </li>
            <li>
              <a href="http://weblogs.asp.net/scottgu/archive/2007/07/16/linq-to-sql-part-5-binding-ui-using-the-asp-linqdatasource-control.aspx" target="_blank">
                <u>
                  <font color="#800080">Part
5: Binding UI using the ASP:LinqDataSource Control</font>
                </u>
              </a>
            </li>
          </ul>
          <p>
I'll be adding several more articles to my series above in the weeks ahead. 
I think you'll find that LINQ to SQL makes it dramatically easier to build much
cleaner data models, and write much cleaner data code.
</p>
        </blockquote>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=da96e299-698b-4f4d-b4d2-71cba3300ee0" />
      </body>
      <title>LINQ to SQL</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,da96e299-698b-4f4d-b4d2-71cba3300ee0.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,da96e299-698b-4f4d-b4d2-71cba3300ee0.aspx</link>
      <pubDate>Sat, 28 Jul 2007 02:39:55 GMT</pubDate>
      <description>&lt;p&gt;
Scott Gutherie hat in seinem Blog eine interessante Artikel-Serie zu LINQ to SQL &lt;blockquote&gt; 
&lt;p&gt;
&lt;strong&gt;&lt;u&gt;Data Access Improvements with LINQ to SQL&lt;/u&gt;&lt;/strong&gt; 
&lt;p&gt;
LINQ to SQL is a built-in OR/M (object relational mapper) in .NET 3.5.&amp;nbsp; It enables
you to model relational databases using a&amp;nbsp;.NET object model.&amp;nbsp; You can then
query the database using LINQ, as well as update/insert/delete data from it.&amp;nbsp;
LINQ to SQL fully supports transactions, views, and stored procedures.&amp;nbsp; It also
provides an easy way to integrate business logic and validation rules into your data
model.&amp;nbsp; Below are some of the articles I've written that explore how to use it:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://weblogs.asp.net/scottgu/archive/2007/05/19/using-linq-to-sql-part-1.aspx" target="_blank"&gt;&lt;u&gt;&lt;font color="#800080"&gt;Part
1: Introduction to LINQ to SQL&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://weblogs.asp.net/scottgu/archive/2007/05/29/linq-to-sql-part-2-defining-our-data-model-classes.aspx" target="_blank"&gt;&lt;u&gt;&lt;font color="#0066cc"&gt;Part
2: Defining our Data Model Classes&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://weblogs.asp.net/scottgu/archive/2007/06/29/linq-to-sql-part-3-querying-our-database.aspx" target="_blank"&gt;&lt;u&gt;&lt;font color="#0066cc"&gt;Part
3: Querying our Database&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://weblogs.asp.net/scottgu/archive/2007/07/11/linq-to-sql-part-4-updating-our-database.aspx" target="_blank"&gt;&lt;u&gt;&lt;font color="#0066cc"&gt;Part
4: Updating our Database&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://weblogs.asp.net/scottgu/archive/2007/07/16/linq-to-sql-part-5-binding-ui-using-the-asp-linqdatasource-control.aspx" target="_blank"&gt;&lt;u&gt;&lt;font color="#800080"&gt;Part
5: Binding UI using the ASP:LinqDataSource Control&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
I'll be adding several more articles to my series above in the weeks ahead.&amp;nbsp;
I think you'll find that LINQ to SQL makes it dramatically easier to&amp;nbsp;build much
cleaner data models, and write much cleaner data code.
&lt;/p&gt;
&lt;/blockquote&gt;&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=da96e299-698b-4f4d-b4d2-71cba3300ee0" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,da96e299-698b-4f4d-b4d2-71cba3300ee0.aspx</comments>
      <category>.Net 3.5;LINQ;SQL</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=8ff59a0c-7b04-4b94-a043-112e9a567f15</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,8ff59a0c-7b04-4b94-a043-112e9a567f15.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,8ff59a0c-7b04-4b94-a043-112e9a567f15.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=8ff59a0c-7b04-4b94-a043-112e9a567f15</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Ein gutes Nachschlagewerk für Oracle-Befehle mit vielen Beispielen findet sich unter <a href="http://www.psoug.org/library.html">http://www.psoug.org/library.html</a></p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=8ff59a0c-7b04-4b94-a043-112e9a567f15" />
      </body>
      <title>Nachschlage-Werk für Oracle Befehle</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,8ff59a0c-7b04-4b94-a043-112e9a567f15.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,8ff59a0c-7b04-4b94-a043-112e9a567f15.aspx</link>
      <pubDate>Thu, 16 Nov 2006 16:59:24 GMT</pubDate>
      <description>&lt;p&gt;
Ein gutes Nachschlagewerk für Oracle-Befehle mit vielen Beispielen findet sich unter &lt;a href="http://www.psoug.org/library.html"&gt;http://www.psoug.org/library.html&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=8ff59a0c-7b04-4b94-a043-112e9a567f15" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,8ff59a0c-7b04-4b94-a043-112e9a567f15.aspx</comments>
      <category>SQL</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=f9ac69be-ed10-431f-a3f0-f64d3e8a6962</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,f9ac69be-ed10-431f-a3f0-f64d3e8a6962.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,f9ac69be-ed10-431f-a3f0-f64d3e8a6962.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=f9ac69be-ed10-431f-a3f0-f64d3e8a6962</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Oft hat man das Problem, dass man eindeutige, fortlaufende Nummern erzeugen möchte.
In einer MultiUser-Umgebung braucht man dazu eine zentrale Instanz, die gleichzeitige
Zugriffe mehrere User korrekt verwaltet, typischerweise eine Datenbank. Mit Oracle
z.B. kann man diese Nummern mit Hilfe einer Sequenz erzeugen.
</p>
        <font color="#0000f0" size="2">
          <p>
CREATE
</p>
        </font>
        <font color="#000000" size="2">
        </font>
        <font color="#0000f0" size="2">SEQUENCE</font>
        <font color="#000000" size="2"> SOPTOOLS</font>
        <font color="#0000f0" size="2">.</font>
        <font size="2">
          <font color="#000000">SEQSOPNUMMER<br /></font>
        </font>
        <font color="#0000f0" size="2">START</font>
        <font color="#000000" size="2">
        </font>
        <font color="#0000f0" size="2">WITH</font>
        <font color="#000000" size="2">
        </font>
        <font color="#800000" size="2">1<br /></font>
        <font color="#0000f0" size="2">INCREMENT</font>
        <font color="#000000" size="2">
        </font>
        <font color="#0000f0" size="2">BY</font>
        <font color="#000000" size="2">
        </font>
        <font color="#800000" size="2">1<br /></font>
        <font color="#0000f0" size="2">MINVALUE</font>
        <font color="#000000" size="2">
        </font>
        <font color="#800000" size="2">0<br /></font>
        <font color="#0000f0" size="2">NOCACHE</font>
        <font size="2">
          <font color="#000000">
            <br />
          </font>
        </font>
        <font color="#0000f0" size="2">NOCYCLE</font>
        <font size="2">
          <font color="#000000">
            <br />
          </font>
        </font>
        <font color="#0000f0" size="2">NOORDER</font>
        <font size="2">
          <font color="#000000">
          </font>
          <p>
Die Parameter sind eigentlich weitgehend selbsterklärend. Die Meisten Beispiele findet
man, wenn man nun mit Hilfe des INSERT-Befehls einen neuen Eintrag erzeugen möchte.
Das sieht dann ungefähr so aus:
</p>
          <font color="#0000f0" size="2">
            <p>
INSERT
</p>
          </font>
          <font color="#000000" size="2">
          </font>
          <font color="#0000f0" size="2">INTO</font>
          <font size="2">
            <font color="#000000"> SOPS </font>
          </font>
          <font color="#0000f0" size="2">(</font>
          <font color="#000000" size="2">SOPNUMMER</font>
          <font color="#0000f0" size="2">,</font>
          <font color="#000000" size="2"> SOPNAME</font>
          <font color="#0000f0" size="2">)<br />
VALUES (</font>
          <font color="#000000" size="2">SEQSOPNUMMER</font>
          <font color="#0000f0" size="2">.NEXTVAL,</font>
          <font color="#ff0000" size="2">'NeueSOP'</font>
          <font color="#0000f0" size="2">)
<p><font color="#000000">Damit wird ein neuer Datensatz angelegt. Dabei wird die Sequenz
automatisch um eins erhöht und der neue Wert als SOPNUMMER eingetragen. D.h. wenn
der Befehl mehrfach hintereinander ausgeführt wird, hat jeder Eintrag eine eindeutige
SOPNUMMER. Mit .CURRVAL kann man übrigens auf die Sequenz zugreifen, ohne dass der
Wert erhöht wird.</font></p><p><font color="#000000">Bei mir war's aber so, dass ich einfach nur den nächsten Wert
der Sequenz wollte ohne einen INSERT. Da muss man zu einem kleinen Trick greifen.
Man kann die Sequenz nicht direkt abfragen, sondern immer nur in Verbindung mit einer
Tabelle. Hier bietet Oracle die Pseudo-Tabelle DUAL, die für diesen Zweck super geeignet
ist. Sie enthält genau eine Zeile mit einer Spalte. Damit liefert folgende Abfrage
den nächsten Wert der Sequenz und erhöht die Sequenz automatisch:</font></p></font>
        </font>
        <font color="#0000f0" size="2">
          <p>
SELECT
</p>
        </font>
        <font color="#000000" size="2"> SEQSOPNUMMER</font>
        <font color="#0000f0" size="2">.NEXTVAL</font>
        <font color="#000000" size="2">
        </font>
        <font color="#0000f0" size="2">FROM</font>
        <font size="2">
          <font color="#000000"> DUAL</font>
        </font>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=f9ac69be-ed10-431f-a3f0-f64d3e8a6962" />
      </body>
      <title>Eindeutige Nummern mit Oracle erzeugen</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,f9ac69be-ed10-431f-a3f0-f64d3e8a6962.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,f9ac69be-ed10-431f-a3f0-f64d3e8a6962.aspx</link>
      <pubDate>Mon, 23 Oct 2006 09:14:18 GMT</pubDate>
      <description>&lt;p&gt;
Oft hat man das Problem, dass man eindeutige, fortlaufende Nummern erzeugen möchte.
In einer MultiUser-Umgebung braucht man dazu eine zentrale Instanz, die gleichzeitige
Zugriffe mehrere User korrekt verwaltet, typischerweise eine Datenbank. Mit Oracle
z.B. kann man diese Nummern mit Hilfe einer Sequenz erzeugen.
&lt;/p&gt;
&lt;font color=#0000f0 size=2&gt; 
&lt;p&gt;
CREATE
&lt;/font&gt;&lt;font color=#000000 size=2&gt; &lt;/font&gt;&lt;font color=#0000f0 size=2&gt;SEQUENCE&lt;/font&gt;&lt;font color=#000000 size=2&gt; SOPTOOLS&lt;/font&gt;&lt;font color=#0000f0 size=2&gt;.&lt;/font&gt;&lt;font size=2&gt;&lt;font color=#000000&gt;SEQSOPNUMMER&lt;br&gt;
&lt;/font&gt;&lt;/font&gt;&lt;font color=#0000f0 size=2&gt;START&lt;/font&gt;&lt;font color=#000000 size=2&gt; &lt;/font&gt;&lt;font color=#0000f0 size=2&gt;WITH&lt;/font&gt;&lt;font color=#000000 size=2&gt; &lt;/font&gt;&lt;font color=#800000 size=2&gt;1&lt;br&gt;
&lt;/font&gt;&lt;font color=#0000f0 size=2&gt;INCREMENT&lt;/font&gt;&lt;font color=#000000 size=2&gt; &lt;/font&gt;&lt;font color=#0000f0 size=2&gt;BY&lt;/font&gt;&lt;font color=#000000 size=2&gt; &lt;/font&gt;&lt;font color=#800000 size=2&gt;1&lt;br&gt;
&lt;/font&gt;&lt;font color=#0000f0 size=2&gt;MINVALUE&lt;/font&gt;&lt;font color=#000000 size=2&gt; &lt;/font&gt;&lt;font color=#800000 size=2&gt;0&lt;br&gt;
&lt;/font&gt;&lt;font color=#0000f0 size=2&gt;NOCACHE&lt;/font&gt;&lt;font size=2&gt;&lt;font color=#000000&gt; 
&lt;br&gt;
&lt;/font&gt;&lt;/font&gt;&lt;font color=#0000f0 size=2&gt;NOCYCLE&lt;/font&gt;&lt;font size=2&gt;&lt;font color=#000000&gt; 
&lt;br&gt;
&lt;/font&gt;&lt;/font&gt;&lt;font color=#0000f0 size=2&gt;NOORDER&lt;/font&gt;&lt;font size=2&gt;&lt;font color=#000000&gt; &lt;/font&gt;&gt;
&lt;p&gt;
Die Parameter sind eigentlich weitgehend selbsterklärend. Die Meisten Beispiele findet
man, wenn man nun mit Hilfe des INSERT-Befehls einen neuen Eintrag erzeugen möchte.
Das sieht dann ungefähr so aus:
&lt;/p&gt;
&lt;font color=#0000f0 size=2&gt; 
&lt;p&gt;
INSERT
&lt;/font&gt;&lt;font color=#000000 size=2&gt; &lt;/font&gt;&lt;font color=#0000f0 size=2&gt;INTO&lt;/font&gt;&lt;font size=2&gt;&lt;font color=#000000&gt; SOPS &lt;/font&gt;&lt;/font&gt;&lt;font color=#0000f0 size=2&gt;(&lt;/font&gt;&lt;font color=#000000 size=2&gt;SOPNUMMER&lt;/font&gt;&lt;font color=#0000f0 size=2&gt;,&lt;/font&gt;&lt;font color=#000000 size=2&gt; SOPNAME&lt;/font&gt;&lt;font color=#0000f0 size=2&gt;)&lt;br&gt;
VALUES (&lt;/font&gt;&lt;font color=#000000 size=2&gt;SEQSOPNUMMER&lt;/font&gt;&lt;font color=#0000f0 size=2&gt;.NEXTVAL,&lt;/font&gt;&lt;font color=#ff0000 size=2&gt;'NeueSOP'&lt;/font&gt;&lt;font color=#0000f0 size=2&gt;)&gt;
&lt;p&gt;
&lt;font color=#000000&gt;Damit wird ein neuer Datensatz angelegt. Dabei wird die Sequenz
automatisch um eins erhöht und der neue Wert als SOPNUMMER eingetragen. D.h. wenn
der Befehl mehrfach hintereinander ausgeführt wird, hat jeder Eintrag eine eindeutige
SOPNUMMER. Mit .CURRVAL kann man übrigens auf die Sequenz zugreifen, ohne dass der
Wert erhöht wird.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color=#000000&gt;Bei mir war's aber so, dass ich einfach nur den nächsten Wert
der Sequenz wollte ohne einen INSERT. Da muss man zu einem kleinen Trick greifen.
Man kann die Sequenz nicht direkt abfragen, sondern immer nur in Verbindung mit einer
Tabelle. Hier bietet Oracle die Pseudo-Tabelle DUAL, die für diesen Zweck super geeignet
ist. Sie enthält genau eine Zeile mit einer Spalte. Damit liefert folgende Abfrage
den nächsten Wert der Sequenz und erhöht die Sequenz automatisch:&lt;/font&gt;
&lt;/font&gt;&lt;/font&gt;&gt;
&lt;font color=#0000f0 size=2&gt; 
&lt;p&gt;
SELECT
&lt;/font&gt;&lt;font color=#000000 size=2&gt; SEQSOPNUMMER&lt;/font&gt;&lt;font color=#0000f0 size=2&gt;.NEXTVAL&lt;/font&gt;&lt;font color=#000000 size=2&gt; &lt;/font&gt;&lt;font color=#0000f0 size=2&gt;FROM&lt;/font&gt;&lt;font size=2&gt;&lt;font color=#000000&gt; DUAL&lt;/font&gt;&gt;
&lt;/font&gt;&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=f9ac69be-ed10-431f-a3f0-f64d3e8a6962" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,f9ac69be-ed10-431f-a3f0-f64d3e8a6962.aspx</comments>
      <category>SQL</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=08c18c6d-503e-433c-b32d-b95178db2b5c</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,08c18c6d-503e-433c-b32d-b95178db2b5c.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,08c18c6d-503e-433c-b32d-b95178db2b5c.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=08c18c6d-503e-433c-b32d-b95178db2b5c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Mit diesem Tool lassen sich verschiedene Befehle auf Datenbanken ausführen. Damit
lassen sich z.B. Daten einer Tabelle abfragen und nach CSV oder XML exportieren. Der
besondere Charme des Tools ist, dass es nicht installiert werden muss, es kann einfach
die EXE gestartet werden. Damit ist es gut geeignet als Datenbank-Viewer für unterwegs.
</p>
        <p>
          <a href="http://www.albahari.com/queryexpress.html">http://www.albahari.com/queryexpress.html</a>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=08c18c6d-503e-433c-b32d-b95178db2b5c" />
      </body>
      <title>Kleines SQL-Tool</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,08c18c6d-503e-433c-b32d-b95178db2b5c.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,08c18c6d-503e-433c-b32d-b95178db2b5c.aspx</link>
      <pubDate>Fri, 25 Aug 2006 18:11:19 GMT</pubDate>
      <description>&lt;p&gt;
Mit diesem Tool lassen sich verschiedene Befehle auf Datenbanken ausführen. Damit
lassen sich z.B. Daten einer Tabelle abfragen und nach CSV oder XML exportieren. Der
besondere Charme des Tools ist, dass es nicht installiert werden muss, es kann einfach
die EXE gestartet werden. Damit ist es gut geeignet als Datenbank-Viewer für unterwegs.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.albahari.com/queryexpress.html"&gt;http://www.albahari.com/queryexpress.html&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=08c18c6d-503e-433c-b32d-b95178db2b5c" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,08c18c6d-503e-433c-b32d-b95178db2b5c.aspx</comments>
      <category>SQL;Tools</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=3f67fbec-dab8-4416-b734-a600725e0939</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,3f67fbec-dab8-4416-b734-a600725e0939.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,3f67fbec-dab8-4416-b734-a600725e0939.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=3f67fbec-dab8-4416-b734-a600725e0939</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://www.databasejournal.com/features/article.php/3593466">http://www.databasejournal.com/features/article.php/3593466</a>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=3f67fbec-dab8-4416-b734-a600725e0939" />
      </body>
      <title>Umfangreiche Artikelsammlung zum SQL-Server und anderen Datenbanksystemen</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,3f67fbec-dab8-4416-b734-a600725e0939.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,3f67fbec-dab8-4416-b734-a600725e0939.aspx</link>
      <pubDate>Fri, 28 Jul 2006 06:13:58 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://www.databasejournal.com/features/article.php/3593466"&gt;http://www.databasejournal.com/features/article.php/3593466&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=3f67fbec-dab8-4416-b734-a600725e0939" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,3f67fbec-dab8-4416-b734-a600725e0939.aspx</comments>
      <category>SQL;Unbearbeitet</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=5a5e2285-f7a5-47e7-b77b-2400da575900</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,5a5e2285-f7a5-47e7-b77b-2400da575900.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,5a5e2285-f7a5-47e7-b77b-2400da575900.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=5a5e2285-f7a5-47e7-b77b-2400da575900</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Unter <a href="http://www.red-gate.com/products/SQL_Prompt/index.htm">http://www.red-gate.com/products/SQL_Prompt/index.htm</a> kann
man kostenlos ein kleines Tool herunterladen, das für alle SQL-Editoren wie z.B. den
Query Analyzer, SQL Server 2005 Managementstudio etc. eine Intelli-Sense Unterstützung
für Tabellen-, Aplaten und Funktionsnamen bietet.
</p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=5a5e2285-f7a5-47e7-b77b-2400da575900" />
      </body>
      <title>Intelli-Sense für SQL-Server Editoren</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,5a5e2285-f7a5-47e7-b77b-2400da575900.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,5a5e2285-f7a5-47e7-b77b-2400da575900.aspx</link>
      <pubDate>Mon, 24 Jul 2006 15:21:32 GMT</pubDate>
      <description>&lt;p&gt;
Unter &lt;a href="http://www.red-gate.com/products/SQL_Prompt/index.htm"&gt;http://www.red-gate.com/products/SQL_Prompt/index.htm&lt;/a&gt;&amp;nbsp;kann
man kostenlos ein kleines Tool herunterladen, das für alle SQL-Editoren wie z.B. den
Query Analyzer, SQL Server 2005 Managementstudio etc. eine Intelli-Sense Unterstützung
für Tabellen-, Aplaten und Funktionsnamen bietet.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=5a5e2285-f7a5-47e7-b77b-2400da575900" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,5a5e2285-f7a5-47e7-b77b-2400da575900.aspx</comments>
      <category>SQL;Tools</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=283ceb93-d5f8-41c2-957b-08b207784841</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,283ceb93-d5f8-41c2-957b-08b207784841.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,283ceb93-d5f8-41c2-957b-08b207784841.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=283ceb93-d5f8-41c2-957b-08b207784841</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Mit dem SP1 spendiert Microsoft dem SQL Server 2005 Express zusätzlich die zwei Funktionen
Reporting-Services und den Volltextindex des großen Bruders. Vorlagen für das Erstellen
der Reports für Visual Studio gibt es mit dem Microsoft SQL Server 2005 Express Edition
Toolkit SP1. 
</p>
        <p>
          <a href="http://msdn.microsoft.com/vstudio/express/sql/download/">http://msdn.microsoft.com/vstudio/express/sql/download/</a>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=283ceb93-d5f8-41c2-957b-08b207784841" />
      </body>
      <title>SQL 2005 Express mit Reporting-Services</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,283ceb93-d5f8-41c2-957b-08b207784841.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,283ceb93-d5f8-41c2-957b-08b207784841.aspx</link>
      <pubDate>Wed, 12 Jul 2006 15:48:27 GMT</pubDate>
      <description>&lt;p&gt;
Mit dem SP1 spendiert Microsoft dem SQL Server 2005 Express zusätzlich die zwei Funktionen
Reporting-Services und den Volltextindex des großen Bruders. Vorlagen für das Erstellen
der Reports für Visual Studio gibt es mit dem Microsoft SQL Server 2005 Express Edition
Toolkit SP1. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn.microsoft.com/vstudio/express/sql/download/"&gt;http://msdn.microsoft.com/vstudio/express/sql/download/&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=283ceb93-d5f8-41c2-957b-08b207784841" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,283ceb93-d5f8-41c2-957b-08b207784841.aspx</comments>
      <category>SQL</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=4a521c87-41ed-42eb-811a-805b4940ab9f</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,4a521c87-41ed-42eb-811a-805b4940ab9f.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,4a521c87-41ed-42eb-811a-805b4940ab9f.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=4a521c87-41ed-42eb-811a-805b4940ab9f</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Jeder kennt das Problem. Man hat einen ellenlangen SQL-String und spätestens nach
der dritten Klammer hat man den Überblick verloren, wenn allles in einer Zeile steht.
Hier hilft ein kleines Tool weiter, das SQL-Strings, auch komplexe, übersichtlich
formatiert. Das Tool gibt es als kostenlose Online-Version und als kostenpflichtige
Offline-Version oder auch als API.
</p>
        <p>
          <a href="http://www.sqlinform.com/">http://www.sqlinform.com/</a>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=4a521c87-41ed-42eb-811a-805b4940ab9f" />
      </body>
      <title>SQL-Strings formatieren</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,4a521c87-41ed-42eb-811a-805b4940ab9f.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,4a521c87-41ed-42eb-811a-805b4940ab9f.aspx</link>
      <pubDate>Mon, 10 Jul 2006 09:42:16 GMT</pubDate>
      <description>&lt;p&gt;
Jeder kennt das Problem. Man hat einen ellenlangen SQL-String und spätestens nach
der dritten Klammer hat man den Überblick verloren, wenn allles in einer Zeile steht.
Hier hilft ein kleines Tool weiter, das SQL-Strings, auch komplexe, übersichtlich
formatiert. Das Tool gibt es als kostenlose Online-Version und als kostenpflichtige
Offline-Version oder auch als API.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.sqlinform.com/"&gt;http://www.sqlinform.com/&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=4a521c87-41ed-42eb-811a-805b4940ab9f" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,4a521c87-41ed-42eb-811a-805b4940ab9f.aspx</comments>
      <category>SQL;Tools;Tipps und Tricks</category>
    </item>
  </channel>
</rss>