verwendetes Datenbanksystem: <SQL Server 2005>
Hallo, ist es möglich über einen SQL-Befehl die DAten einer Tabelle oder einer ABfrage direkt in ein Textfile z leiten, so wie das auch bei Access geht?
Direkt aus SQL nicht. Es gibt aber diverse Möglichkeiten:
* BCP utility
* Integration Services
* Import/Export Wizard
* SQLCMD
* Management Studio im SQLCMD Mode
* Linked Server
* Adhoc Remote Connections
... kann sein dass ich noch was vergessen habe.
Ohne weitere Informationen kann ich nicht mehr sagen.
Grüße
Flo
Blog: Things about Software Architecture, .NET development and SQL Server
Twitter
Google+
Je mehr ich weiß, desto mehr weiß ich was ich noch nicht weiß.
Ja, ich nutze die "SQL Server Managment Studio Express". Wie kann ich das dort realisieren? Oder was gibts noch einfacheres?
Aber wir können ja hier noch ein bisschen drüber reden ....
Mit dem Express Studio kenne ich mich nicht wirklich aus, aber im normalen Studio kannst du z.B. über Menü "Query -> Results to -> Results to File" (englische Version) oder CTRL+SHIFT+F einstellen, dass alle Ergebnisse in ein Textfiele umgeleitet werden.
Zusätzlich kann man auch über Menü "Query -> SQLCMD" den sqlcmd-Mode aktivieren und dann die Ausgabe über ":OUT" umleiten:
:OUT D:\Temp\Test\test.txt
SELECT
SonstWas
from MyTable
Blog: Things about Software Architecture, .NET development and SQL Server
Twitter
Google+
Je mehr ich weiß, desto mehr weiß ich was ich noch nicht weiß.
Hallo Tom
- hit aus mein oben geposteten Link liefert eine komplette Lösung auf Basis T-SQL OLE die sehr einfach zu implementieren ist.
Nix für ungut, Phil Factor hat wirklich was auf dem Kasten (ich hatte schon persönlich mit ihm zu tun). Aber ich finde den Weg über "sp_OA...", also Active-X über T-SQL, seit SQL Server 2005 antiquiert und sollte nicht mehr verwendet werden. Die andere Lösung über die Temp-Table funktioniert nur dann, wenn es sich nicht um zu viele Daten handelt.
Ich würde für so was eigentlich immer BCP verwenden.
Grüße
Flo
Blog: Things about Software Architecture, .NET development and SQL Server
Twitter
Google+
Je mehr ich weiß, desto mehr weiß ich was ich noch nicht weiß.
Ich habe auch dazu geschrieben, dass dies eine Lösung ist die einfach zu implementieren ist.
Und ich wüsste ehrlich gesagt nicht wieso man diese Methode nicht verwenden sollte, wenn man nicht an die von dir genannten Begrenzungen oder auf Geschwindgeitsproblemen stösst.
Bloss weil Technologie voranschreitet und neue Wege anbietet, heisst das nicht das alte bewährte Wege nicht mehr genommen werden sollten.
Aber selbstverständlich bieten sich noch eine Vielzahl anderer Möglichkeiten an.
Gruß,
Tom
Hallo Tom
Bloss weil Technologie voranschreitet und neue Wege anbietet, heisst das nicht das alte bewährte Wege nicht mehr genommen werden sollten.
Naja, die Verwendung von Active-X in TSQL ist ja wirklich umständlich und außerdem recht fehleranfällig. Bis SQL Server 2000 gab's für manche Sache einfach keinen anderen Weg (mal abgesehen von Extended Procedures für die Mutigen). Seit SQL Server 2005 sollte man solche Sachen aber über SQLCLR abhandeln (die Meinung vertritt Phil übrigens mittlerweile auch 😉 ).
BTW: Ich habe ja nicht gesagt, dass es schlecht ist, weil es alt ist. Sonst hätte ich sicher kein BCP vorgeschlagen 😉.
Und ich wüsste ehrlich gesagt nicht wieso man diese Methode nicht verwenden sollte, wenn man nicht an die von dir genannten Begrenzungen oder auf Geschwindgeitsproblemen stösst.
Grundsätzlich gilt natürlich "never change a running system". Nachdem oehrle allerdings gerade erst nach einer Methode sucht, und somit sicher noch nix "running" hat, würde ich eben von "sp_OA" Ansätzen abraten.
Grüße
Flo
Blog: Things about Software Architecture, .NET development and SQL Server
Twitter
Google+
Je mehr ich weiß, desto mehr weiß ich was ich noch nicht weiß.
Mit dem Express Studio kenne ich mich nicht wirklich aus, aber im normalen Studio kannst du z.B. über Menü "Query -> Results to -> Results to File" (englische Version) oder CTRL+SHIFT+F einstellen, dass alle Ergebnisse in ein Textfiele umgeleitet werden.
Zusätzlich kann man auch über Menü "Query -> SQLCMD" den sqlcmd-Mode aktivieren und dann die Ausgabe über ":OUT" umleiten:
:OUT D:\Temp\Test\test.txt SELECT SonstWas from MyTable
Sorry, habe das mal getestet.
😮UT C:\Test.txt
SELECT Winkel1, Kantenradius, Scheibendurchmesser, Kunde
FROM AlleDaten
Funzt bei mir nicht, bekomme Fehlermeldung. Arbeite mit der Vollversion von VStudio 2008.
Why it doesn't work ??
Liegt dann wohl am Express Studio.
Dann würde ich BCP verwenden. Ist ein Kommandozeilentool welches auch bei Express-Editions mitgeliefert wird.
Hier die Referenz (unten sind auch einige Beispiele zu finden):
BCP utility
Im SSMS kannst du BCP einfach über xp_cmdshell aufrufen. (xp_cmdshell muss evtl. über sp_configure aktiviert werden)
Grüße
Flo
Blog: Things about Software Architecture, .NET development and SQL Server
Twitter
Google+
Je mehr ich weiß, desto mehr weiß ich was ich noch nicht weiß.