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:

Система не может найти указанный файл.

0 ответов

Другие вопросы по тегам