xp_cmdshell Невозможно скопировать данные из одного Excel в другой
Я получаю сообщение об ошибке при копировании данных из одного Excel в другой. У меня есть следующий код:
DECLARE @columns VARCHAR(8000) ,
@sql VARCHAR(8000) ,
@data_file VARCHAR(100),
@file_name VARCHAR(8000),
@columns VARCHAR(8000),
@table_name VARCHAR(8000),
@db_name VARCHAR(1000)
SET @file_name = 'E:\abc\xyz.xlsx'
SET @db_name = 'MyDB'
SET @table_name = 'MyTable'
SELECT @columns = COALESCE(@columns + ',', '') + column_name + ' as '
+ column_name
FROM information_schema.columns
WHERE table_name = @table_name
SELECT @columns = '''''' + REPLACE(REPLACE(@columns, ' as ', ''''' as '),
',', ',''''')
SELECT @data_file = SUBSTRING(@file_name, 1,
LEN(@file_name) - CHARINDEX('\',
REVERSE(@file_name)))
+ '\data_file.xlsx'
SET @sql = 'exec master..xp_cmdshell ''bcp " select * from (select '
+ @columns + ') as t" queryout "' + @data_file + '" -c'''
EXEC(@sql)
SET @sql = 'exec master..xp_cmdshell ''bcp "select * from ' + @db_name
+ '..' + @table_name + '" queryout "' + @file_name + '" -c'''
EXEC(@sql)
SET @sql = 'exec master..xp_cmdshell ''type ' + @data_file + ' >> '
+ @file_name + ''''
EXEC(@sql)
Выдает ошибку Error:
Система не может найти указанный файл.