使用SQL Server导入/导出Excel

使用SQL Server导入/导出Excel,包含部分错误信息处理方法;

操作手记,留此备查

 

/* 导入 */ --错误信息如下时: --Msg 15281, Level 16, State 1, Line 2 --SQL Server blocked access to STATEMENT 'OpenRowset/OpenDatasource' of component 'Ad Hoc Distributed Queries' because this component is turned off as part of the security configuration for this server. A system administrator can enable the use of 'Ad Hoc Distributed Queries' by using sp_configure. For more information about enabling 'Ad Hoc Distributed Queries', see "Surface Area Configuration" in SQL Server Books Online. --请选择执行下面语句,修改默认配置,在进行导入操作 -- begin sp_configure 'show advanced options',1 RECONFIGURE WITH override go sp_configure 'Ad Hoc Distributed Queries',1 -- 1:启用,默认0:禁用 RECONFIGURE WITH override go EXEC sp_configure; go -- end -- 查询 select * from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE=D:/ExcelSheet1.xls',sheet1$) go -- 查询并导入 select * into ExcelSheet from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE=D:/ExcelSheet1.xls',sheet1$) go /* 导出 */ --错误信息如下时: --Msg 15281, Level 16, State 1, Procedure xp_cmdshell, Line 1 --SQL Server blocked access to procedure 'sys.xp_cmdshell' of component 'xp_cmdshell' because this component is turned off as part of the security configuration for this server. A system administrator can enable the use of 'xp_cmdshell' by using sp_configure. For more information about enabling 'xp_cmdshell', see "Surface Area Configuration" in SQL Server Books Online. --请选择执行下面语句,修改默认配置,在进行导出操作 -- begin sp_configure 'show advanced options',1 RECONFIGURE WITH override go sp_configure 'xp_cmdshell',1 -- 1:启用,默认0:禁用 RECONFIGURE WITH override go EXEC sp_configure; go -- end --添加到现在Excel文档 insert into OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE=D:/ExcelSheet.xls',sheet1$) go --带连接信息导出 EXEC master..xp_cmdshell 'bcp Test.dbo.ExcelSheet out "C:/ExcelSheet.xls" -c -S"LONG-LENOVOPC" -U"sa" -P"s1"' go --使用默认安全连接导出 EXEC master..xp_cmdshell 'bcp Test.dbo.ExcelSheet out "C:/ExcelSheet.xls" -c -T' go --带查询语句导出 EXEC master..xp_cmdshell 'bcp "SELECT * FROM Test.dbo.ExcelSheet" queryout "D:/ExcelSheet.xls" /c -S"LONG-LENOVOPC" -U"sa" -P"s1"' go /* BCP共有四个动作可以选择。 (1) 导入 : 这个动作使用in命令完成,后面跟需要导入的文件名。 (2) 导出 : 这个动作使用out命令完成,后面跟需要导出的文件名。 (3) 使用SQL语句导出 : 这个动作使用queryout命令完成,它跟out类似,只是数据源不是表或视图名,而是SQL语句。 (4) 导出格式文件 : 这个动作使用format命令完成,后而跟格式文件名。 常用参数介绍: -f : format_file表示格式文件名。这个选项依赖于上述的动作,如果使用的是in或out,format_file表示已经存在的格式文件,如果使用的是format则表示是要生成的格式文件。 -x : 这个选项要和-f format_file配合使用,以便生成xml格式的格式文件。 -F : first_row指定从被导出表的哪一行导出,或从被导入文件的哪一行导入。 -L : last_row指定被导出表要导到哪一行结束,或从被导入文件导数据时,导到哪一行结束。 -c : 使用char类型做为存储类型,没有前缀且以"/t"做为字段分割符,以"/n"做为行分割符。 -w : 和-c类似,只是当使用Unicode字符集拷贝数据时使用,且以nchar做为存储类型。 -t : field_term指定字符分割符,默认是"/t"。 -r : row_term指定行分割符,默认是"/n"。 -S : server_name指定要连接的SQL Server服务器的实例,如果未指定此选项,BCP连接本机的SQL Server默认实例。如果要连接某台机器上的默认实例,只需要指定机器名即可。 -U : login_id指定连接SQL Sever的用户名。 -P : password指定连接SQL Server的用户名密码。 -T : 指定BCP使用信任连接登录SQL Server。如果未指定-T,必须指定-U和-P。 -k : 指定空列使用null值插入,而不是这列的默认值。 */

你可能感兴趣的:(手计)