2016-07-02 20 views
0

Ich versuche, eine TXT-Datei mit bcp zu exportieren:bcp anhängen eine Zeile am Ende der Datei

EXEC xp_CMDSHELL 'BCP "SELECT v.ItemId 
    , v.InventLocationId 
    , CAST(v.AvailPhysical AS int) 
FROM D_R1.dbo.vwStockOnHand AS v 
JOIN D_R1.DBO.vwProducts AS m 
ON v.ItemId = m.ITEMID 
WHERE NOT EXISTS 
    (SELECT 1 
     FROM D_R1.DBO.ExportExcludedFamilies AS magExport 
     WHERE magExport.REFRECID = m.FamilyRecId) 
     AND AVAILPHYSICAL > 0 AND v.PICKFROMZ = 1 
     ORDER BY v.InventLocationId, v.ITEMID" 
     queryout "C:\temp\1.txt" -c -t"|" -T -S D_R1' 

alles gut, aber ich würde eine letzte Zeile in der Datei wie "END OF FILE" müssen und ich bin nicht in der Lage, es herauszufinden.

Kann mir jemand einen Hinweis darauf geben?

+0

@zundarz Ich habe es ein wenig vor dem Posten der Frage bearbeitet, aber es funktioniert gut für mich. Ich habe nur gefragt, ob es eine Möglichkeit gibt, am Ende der Datei eine Zeichenfolge hinzuzufügen, nachdem die Auswahl ihren Job beendet hat ... –

Antwort

1

1) Erste Lösung

SELECT CONVERT(VARCHAR(11), v.ItemId) AS ItemId 
    , v.InventLocationId 
    , CAST(v.AvailPhysical AS int) 
    , 1 AS Priority 
FROM ... 

UNION ALL 

SELECT 'End of export file', NULL, NULL, 2 AS Priority 

ORDER BY Priority, InventLocationId, ItemID 

oder

SELECT... ; 
SELECT 'End of report' ; 

oder

SELECT... ; 
PRINT 'End of report' ; 

2) Zweite Lösung

bcp "the same SQL query", ... 
echo End of export 

echo command