xp_cmdshell无法将数据从一个Excel复制到另一个Excel

时间:2012-07-03 09:03:55

标签: sql-server 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)

它出错了 错误:

  

系统找不到指定的文件。

0 个答案:

没有答案