Hallo,
ich probiere gerade ein wenig rum mit BCP und Storeprededure in MS SQL Server 2012.
Dies ist der Script der unter der Windows Eingabeaufforderung klappt. Dies möchte ich komplett so in SQL in einer Storeprocedure abspeichern.
Einen Teil davon habe ich auch schon in einem SQL Query zu laufen bekommen. Dies sieht dann so aus:
Zur Zeit probiere ich das ganze zusammen zufügen, es gibt aber immer wieder Probleme an der Stelle COALESCE(@colnames + ';', '') Dort wo das ; ist.
Irgendwie hat er Probleme mit dem ; Ich vermute ich habe ein Hochkomma Problem oder so ähnlich. Hat einer von euch eine Idee
ich probiere gerade ein wenig rum mit BCP und Storeprededure in MS SQL Server 2012.
Dies ist der Script der unter der Windows Eingabeaufforderung klappt. Dies möchte ich komplett so in SQL in einer Storeprocedure abspeichern.
Code:
set BCP_EXPORT_DB=TestDB
set BCP_EXPORT_TABLE=Table
BCP "DECLARE @colnames VARCHAR(max);SELECT @colnames = COALESCE(@colnames + ';',
'') + column_name from %BCP_EXPORT_DB%.INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='%BCP_EXPORT_TABLE%'; select @colnames;" queryout C:/PDF_Out/HeadersOnly.csv -c -T
BCP %BCP_EXPORT_DB%.dbo.%BCP_EXPORT_TABLE% out C:/PDF_Out/TableDataWithoutHeaders.csv -c -t; -T
set BCP_EXPORT_DB=
set BCP_EXPORT_TABLE=
copy /b /Y C:/PDF_Out/HeadersOnly.csv+C:/PDF_Out/TableDataWithoutHeaders.csv "C:/PDF_Out/Table.csv"
del C:/PDF_Out/HeadersOnly.csv
del C:/PDF_Out/TableDataWithoutHeaders.csv
Einen Teil davon habe ich auch schon in einem SQL Query zu laufen bekommen. Dies sieht dann so aus:
Code:
declare @sql varchar(8000)
select @sql ='bcp "SELECT * FROM TestDB.dbo.Table" queryout
C:/PDF_Out/Table.csv -c -t; -T -S' + @@SERVERNAME
exec master..xp_cmdshell @sql
Zur Zeit probiere ich das ganze zusammen zufügen, es gibt aber immer wieder Probleme an der Stelle COALESCE(@colnames + ';', '') Dort wo das ; ist.
Code:
declare @sql varchar(8000)
declare @colnames VARCHAR(max)
declare @BCP_EXPORT_DB VARCHAR(max)
set @BCP_EXPORT_DB = 'TestDB'
declare @BCP_EXPORT_TABLE VARCHAR(max)
set @BCP_EXPORT_TABLE = 'Table'
select @sql ='BCP "SELECT @colnames = COALESCE(@colnames + ';', '') + column_name from %BCP_EXPORT_DB%.INFORMATION_SCHEMA.COLUMNS where TABLE_NAME=BCP_EXPORT_TABLE; select @colnames;" queryout C:/PDF_Out/HeadersOnly.csv -c -T' + @@SERVERNAME
exec master..xp_cmdshell @sql
Irgendwie hat er Probleme mit dem ; Ich vermute ich habe ein Hochkomma Problem oder so ähnlich. Hat einer von euch eine Idee