Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst SQL Abfrageergebnis in Textdatei schreiben

Mitglied: ITSchlumpf

ITSchlumpf (Level 1) - Jetzt verbinden

20.09.2011, aktualisiert 15:22 Uhr, 22292 Aufrufe, 13 Kommentare

Hallo,

ich möchte das Ergebnis einer SQL - Abfrage in eine Textdatei schreiben lassen. Die Abfrage besteht aus einem einfachen Select, mit welchem ich Überprüfe ob es Duplikate in einer Tabelle der Datenbank gibt.
Ich habe schonmal sqlcmd gesehen aber ich verstehe das nicht so ganz. Kann ich den befehl sqlcmd direkt in die Abfrage schreiben oder wie mache ich das?
Ich benutze MSSQQL Management Studio 2008.

Gruße

Schlumpf
Mitglied: 32067
20.09.2011 um 10:19 Uhr
Hallo,

sqlcmd ist ein Befehl für die Kommandozeile aka "DOS-Box". Mit den richtigen Parametern versehen (Server, User, etc.) kann du damit SELECTs und ähnliches loslassen und das Ergebnis dann wegspeichern.
Bitte warten ..
Mitglied: ITSchlumpf
20.09.2011 um 10:23 Uhr
Gibt es auch eine andere Möglichkeit die Daten auszulagern. Sowas wie bei Batch files z.B. >> textdatei.txt oder einen TSQL befehl der sowas unterstützt?
Kann ich das irgendwie in mein SQL dann einbauen oder muss ich das separat starten?

Danke für die schnelle Antwort.

[Edit]
Habe gerade gelesen bei Oracle geht das mit Spool dateiname, geht das so ähnlich bei MSSQL?
Bitte warten ..
Mitglied: Logan000
20.09.2011 um 11:48 Uhr
Moin Moin

Sowas wie bei Batch files z.B. >> textdatei.txt
Das wäre die sqlcmd Variante aus Kommandozeile (Batch) heraus.

...der einen TSQL befehl der sowas unterstützt
Wenn es denn unbeding aus SQL heraus sein muss, dann soltest du dir mal xp_cmdshell und bcp anschauen.

Gruß L
Bitte warten ..
Mitglied: ITSchlumpf
20.09.2011 um 14:55 Uhr
Noch schnell was anderes, ich schreibe das Ergebnis in eine E-Mail welche per sp_send_mail vom SQL-Server versendet wird.
Jetzt möchte ich in den Body das Ergebnis und einen Text schreiben. Wie kann ich das Ergebnis dort einfügen.
wenn ich 'Text bla bla' + Variable ; mache bekomme ich nen Fehler "Falsche Syntax in der nähe von +".
Habt ihr da auf die schnelle grad was?

Gruß
Schlumpf
Bitte warten ..
Mitglied: Logan000
20.09.2011 um 15:12 Uhr
Moin Moin

Zitat von ITSchlumpf:
Noch schnell was anderes,
Heißt wohl soviel wie es hat funktioniert. Danke.

Bitte.

... wenn ich 'Text bla bla' + Variable ; mache bekomme ich nen Fehler "Falsche Syntax in der nähe von +".
Könnte am Inhalt von "Variable" liegen.
Versuchs mal so:
01.
...  'Text bla bla' + CAST (Variable AS varchar(2000))  
Gruß L.
Bitte warten ..
Mitglied: ITSchlumpf
20.09.2011 um 15:15 Uhr
Öhm ich bin noch am rumprobieren aber werde das wohl so realisieren. Weiß nur noch nicht ganz genau wie der befehl dann lauten muss, aber das werd ich schon irgendwie rausbekommen.
Danke

Also irgendwie mag der das "+" nicht. Ist bestimmt wieder nur irgend en kleiner fehler ^^
Bitte warten ..
Mitglied: ITSchlumpf
20.09.2011 um 15:23 Uhr
Logan kannst du mir vll ein Beispiel schreiben wie ich das mit dem xp_cmdshell und cb mache? Ich raff das nicht so ganz wie ich das verbinden muss bzw. wie ich wo was machen muss.
Danke

Gruß
Schlumpf
Bitte warten ..
Mitglied: ITSchlumpf
21.09.2011 um 08:37 Uhr
Also ich habe jetzt mal diesen Quellcode zusammen gebastelt. Dieser Funktioniert aber noch nicht ganz. Kann mir jemand sagen, wie ich es hinbekommen, dass der ausgeführte SQL-Befehl in der Variablen steht?? Also Ergebnis >> Variable.

01.
  
02.
 
03.
Declare @bcpCommand nvarchar(4000); 
04.
Declare @cmd nvarchar(4000); 
05.
  
06.
SET @bcpCommand = 'select count(*) from IBS2009.dbo.Teileliste where Barcode = 123456 )'; 
07.
SET @cmd = 'echo '+@bcpCommand+' >> \\Rechnername\D:\test.txt -S IP -U Domäne\User -P Passwort"'; 
08.
EXEC master..xp_cmdshell @cmd ,no_output; 
09.
 
Gruß Schlumpf

[Edit] Habs gelöst. Musste ein execute noch ausgeführt werden. Kann mir trotzdem jemand sagen, ob das klappen könnte bzw. wo noch mein Fehler ist im Bereich ">> \\Rechnername......". Weil die Datei wird nicht erstellt.
Bitte warten ..
Mitglied: Biber
21.09.2011 um 09:57 Uhr
Moin ITSchlumpf,

für die CMD-Shell ist sicherlichder Doppelpunkt in ">> \\Rechnername\D:\test.txt" kein gültiges Zeichen.

Gemeint ist sichelich ">> \\Rechnername\Sharename\test.txt".

Grüße
Biber
Bitte warten ..
Mitglied: ITSchlumpf
21.09.2011 um 10:02 Uhr
Hoi Biber,

ja des hab ich mitlerweile geklärt danke trotzdem.
Der Pfad ">>\Rechnername\C$\test.txt".
Jetzt bekomme ich allerdings die Fehlermeldung "Kein Zugriff". Liegt wohl irgendwie an der User Berechtigung. Weißt du, ob und wenn ja wie ich dem echo oder dem xp_cmdshell Befehl Benutzername und Passwort mitgeben kann?

Gruß
Schlumpf
Bitte warten ..
Mitglied: ITSchlumpf
21.09.2011 um 17:11 Uhr
So hab das Problem jetzt soweit gelöst. Jetzt fehlt mir nur noch, dass ich die Dateien in das Textfile schreiben kann, ohne das er die bisherigen Einträge überschreibt. Wenn jemandem dazu noch was einfällt, immer her damit.
01.
bcp "Select * From BCPTest.dbo.t1" queryout \\%PC%\C$\SQL-Test\test.txt -U User -P PW -S Server -c
Vielen dank aufjedenfall für die Hilfe.

Gruß
Schlumpf

[Edit] Leider funktioniert der Befehl jetzt nicht mehr bei mir. Jetzt bekomme ich eine Fehlermeldung, dass die BCP-Hostdatendatei nicht mehr gefunden werden kann.
Bitte warten ..
Mitglied: Logan000
22.09.2011 um 12:29 Uhr
Moin Moin

ohne das er die bisherigen Einträge überschreibt. Wenn jemandem dazu noch was einfällt, immer her damit.
Keine Ahnung ob das mit bcp klappt, aber das könntest du doch mit einer weiteren Zeile Batch erledigen.

z.B.
01.
bcp "Select * From BCPTest.dbo.t1" queryout \\%PC%\C$\SQL-Test\test.txt -U User -P PW -S Server -c 
02.
type \\%PC%\C$\SQL-Test\test.txt>>\\%PC%\C$\SQL-Test\testAll.txt
Gruß L
Bitte warten ..
Mitglied: ITSchlumpf
22.09.2011 um 12:42 Uhr
Hey,

danke das ne coole Lösung. Habs jetzt doch wieder hinbekommen. Funktioniert alles soweit. Fetten dank.

Gruß
Schlumpf
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

SED Abfrageergebnis in Variable schreiben

gelöst Frage von BloodyRulzBatch & Shell4 Kommentare

Hallo, kann mir jemand sagen, wie ich eine SED Abfrage in eine Batchvariable schreibe. Ich möchte praktisch foglendes erreichen: ...

Batch & Shell

Dateierweiterungen in eine Textdatei schreiben

gelöst Frage von joe65Batch & Shell3 Kommentare

Hallo, ich hab nach längerer Zeit wieder mal ein Batch-Problem. Ich möchte alle Dateierweiterungen (txt, docx, jpg, etc.) die ...

Batch & Shell

Textdatei zeilenweise in Variable schreiben

gelöst Frage von goodbytesBatch & Shell20 Kommentare

Hallo, mit einer Batch möchte ich mehrere Laufwerke mappen, abhängig vom Usernamen. Klar könnte ich auch für jeden User ...

Batch & Shell

Erstellungsdatum vor jede Zeile einer Textdatei schreiben

gelöst Frage von freakonaleashBatch & Shell5 Kommentare

Hallo zusammen, ich habe einen Ordner mit ganz vielen Textdateien. Ich bräuchte eine Batch, die in jede Datei vor ...

Neue Wissensbeiträge
Windows 10

USB Maus und Tastatur versagen Dienst unter Windows 10

Erfahrungsbericht von hardykopff vor 21 StundenWindows 104 Kommentare

Da steht man ziemlich dumm da, wenn der PC sich wegen fehlender USB Tastatur und Maus nicht bedienen lässt. ...

Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 1 TagAdministrator.de Feedback18 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 1 TagHumor (lol)4 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 2 TagenGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Heiß diskutierte Inhalte
Windows Netzwerk
WSUS4 und Windows 10 Updates automatisch installieren
Frage von sammy65Windows Netzwerk15 Kommentare

Hallo miteinander, ich habe mit einen neuen WSUS Server aufgesetzt Server 2016 darauf einen aktuellen WSUS. Grund, wir stellen ...

Speicherkarten
Vergessliche USB-Sticks?
Frage von hanheikSpeicherkarten14 Kommentare

Ich habe in den letzten Tagen 500 USB-Sticks mit Bilddateien bespielt. Obwohl ich die Dateien mit größter Sorgfalt kopiert ...

Windows Netzwerk
Backup über WAN
Frage von petereWindows Netzwerk11 Kommentare

Hallo, ich muss aus einem entfernten WAN (synchrone 1Gbit) Daten sichern. Dabei handelt es sich sowohl um wenige große ...

Hyper-V
Hyper-V mit altem XEON-Server. Was ist falsch?
Frage von LollipopHyper-V11 Kommentare

Hallo Bin etwas frustriert. Kleinbetrieb, ca. 15 PC's, 2 Stk. Server mit einigen virtuellen PC's für Fernwartung, VaultServer für ...