Ich versuche, eine SQL-Abfrage durch Batch-Datei auszuführen zu bekommen und wenn ich ich bin, dies zu tun versuchenZur Eingabe von Datum vom Benutzer in Batch-Datei
ungültiges Argument Fehler
Im Folgenden bekomme Datei ist der Ansatz, mit dem ich versuche, meine SQL-Skript
:start
cls
@echo ------BILLING REPORT---------
@echo Please enter billing report Date in (YYYY/MM/DD)
@echo off
::set /P D = Enter Date:
::Date %Date% > Billing_Data.sql
PAUSE
sqlcmd -S database\instance_name -E -i "C:\Users\rb54761\Deskto\rb54761\Billing_Data_For_Certs_New.sql" > Output.txt -v Date = '2016-07-01'
:: -o "C:\Users\rb54761\Desktop\rb54761\Output.txt"
PAUSE
COPY C:\Users\rb54761\Desktop\rb54761\Output.txt C:\Users\rb54761\Desktop
PAUSE
goto start
für das i Sache 1. ausführen müssen, wenn eine Benutzereingabe das Datum, die Daten überein holen wird ing zu diesem Zeitpunkt 2. i in diesem Datum hinzugefügt werden soll, wo Klausel, so dass Datenabruf wird Im Folgenden entsprechend ist die where-Klausel, wo ich die Daten
WHERE
DateCompleted > CONVERT(DATETIME, '$(Date)', 102))
Es ist nicht SQL it Batch! Und '> Output.txt -v Datum = '2016-07-01'' in einer Batch-Datei schneidet es nicht! Auf die Umleitung dürfen keine Argumente folgen. Versuchen Sie, echo on zu setzen, um den Fehler zu finden. Aber zumindest habe ich darauf hingewiesen. –
Nachricht 102, Ebene 15, Status 1, Server-Datenbank \ Instanzname, Zeile 28 Falsche Syntax in der Nähe von '2016'. Ich denke, der Fehler ist beim Konvertieren von Datum in SQL-Datei akzeptiert es nicht das vollständige Datum stattdessen verwendet es nur 2016. –
@ Jean-FrançoisFabre - Nicht wahr. Dateiumleitung kann überall innerhalb eines Befehls erscheinen - am Anfang, am Ende oder in der Mitte! Die nachfolgenden Argumente im OP-Befehl sind Argumente für sqlcmd, nicht für die Umleitung. – dbenham