Kann ich angeben, eine Eingabe sql-Datei mit bcp?
Wie kann ich angeben, eine Eingabe sql-Datei mit einer langen Abfrage bei Verwendung von bcp? Ich habe versucht mit der -i
- option, aber es hält Klagen über eine Befehlszeile den Fehler mit keine zusätzlichen Informationen. Ist das möglich?
- Schreiben Sie eine SQL-Datei? Nein. Sie können eine Datendatei und eine Formatdatei. Wenn Sie möchten, verwenden Sie SQL, vielleicht Massen-insert ist eine bessere Wahl.
- Eigentlich bin ich versucht zu ziehen Daten aus einer Tabelle. Vor dieser hatte ich eine WÄHLEN Sie basierend auf einem string und liefert es zu bcp-aber ich habe eine längere Abfrage nun.
- Könnten Sie eine Sicht erstellen, die mit der Abfrage, vielleicht.
- Leider habe ich nicht ausreichende Berechtigungen zum erstellen einer Ansicht.
- Sie sollten in der Lage sein, um eine temporäre Prozedur, auch wenn Sie nicht über DDL-Rechte. CREATE PROC #MYPROC AS SELECT* FROM MYTABLE, Dann führen Sie Ihre neu erstellten proc. Dieser proc muss zurück einem nachhaltigen Ergebnis. Die beste Wette wäre, legen Sie es in eine temp-Tabelle, dann beenden Sie die Prozedur mit select * from temp-Tabelle.
- Wenn Sie Zugriff auf den SQL-server, erstellen Sie eine gespeicherte Prozedur und rufen Sie die sproc über das BCP-Dienstprogramm.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Soweit ich bin besorgt das BCP-Dienstprogramm unterstützt nur Transact-SQL-Abfragen direkt in die Befehlszeile geschrieben. Ex:
Laut seine Referenz dem "-i" - option:
Beachten Sie, dass es unterscheidet sich von der das Dienstprogramm sqlcmd "-i" - option:
SELECT
Befehl zu lang wird?Ich hatte heute dieses problem und fanden eine bequeme Abhilfe, zumindest in einer ad-hoc-situation.
Temporäre Tabellen können erstellt werden, indem jeder Benutzer mit connect-Berechtigungen. Das heißt, Sie können auch GLOBALE temporäre Tabellen.
Nur führen Sie Ihre Abfrage im enterprise manager (sql oder cmd oder was auch immer) mit SELECT ...INTO-mit einer globalen temporären Tabelle z.B.
Dann können Sie die temporäre Tabelle in der BCP-query mit einer einfachen
Fallen dann die temp-Tabelle über enterprise manager
bcp ##mytemptable out
...Habe ich anderen Weise zu beheben.
Ich eine batch-Datei erstellen, die eine Datei Lesen und senden Sie Ihre Inhalte in bcp Befehl. Siehe:
Skript erhält zwei Parameter:
Führen Sie ein Skript in cmd so aus:
export-Abfrage.Fledermaus-Abfrage.sql export.txt
Ich hoffe geholfen.
Multi-line Abfragen können gegeben werden, um bcp leicht mit powershell:
Ich hatte Gesicht gleiche Problem, es kann nicht ein sehr guter Ansatz. Allerdings habe ich so etwas wie die folgenden
Und ich muss sagen, wenn Sie wie Globale temporäre Tabelle dann Globale temporäre Tabelle gelöscht wird, selbst nachdem die Abfrage ausgeführt. Sie können nicht verwenden Sie diese in einigen Situationen
versuchen :