sqlserver带列名导出数据到excel的方法

sqlserver带列名导出数据到excel的方法


2024年3月31日发(作者:)

今天在项目中遇到一个问题,需要从SQL Server导出表到Excel,但需要带列名。尝试了

几种方法,并小结如下:

假定表如下:

[sql] view plaincopyprint?

1. USE testDb2

2. GO

3.

4.

5. IF NOT OBJECT_ID('Demo_A') IS NULL

6. DROP TABLE [Demo_A]

7.

8. /****** Object: Table[dbo].[Demo_A]downmoon:****************/

9.

10.

11. CREATE TABLE [dbo].[Demo_A](

12. [ID] int not null,

13. [Name] [Nvarchar](20) NOT NULL

14. )

15.

16. GO

17. INSERT [dbo].[Demo_A]

18. SELECT 1,'郭靖'

19. union ALL SELECT 2,'胡一刀'

20. union ALL SELECT 3,'令狐冲'

21. GO

如果通常的思路,我们可以用BCP,命令如下:

[sql] view plaincopyprint?

1. -- To allow advanced options to be changed.

2. EXEC sp_configure 'show advanced options', 1

3. GO

4. -- To update the currently configured value for advanced options.

5. RECONFIGURE

6. GO

7. -- To enable the feature.

8. EXEC sp_configure 'xp_cmdshell', 1

9. GO

10. -- To update the currently configured value for this feature.

11. RECONFIGURE

12. GO

13.

鱼跃家庭制氧机

14. p_cmdshell 'bcp _A out c: -c -q -S"ap

4Net2012" -U"sa" -P"sA"'

这样得到的xls文件中,Sheet是不带列名的。但可以改进一下,得到如下命令(参考:

/forums/en-US/sqlgetstarted/thread/812b8eec-5b7

7-42a2-bd23-965558ece5b9/):

方法一:使用BCP

为了方便,我创建了一个存储过程:

[sql] view plaincopyprint?

1. /****** SQL Export to xls ***************/

2. /* Example */

3. /*CPP_Export_To_Excel_With_Header 'Testdb2','Demo_A','C:TestExxelWithHeader

.xls'*/

4. /* 2012.5.4 BY tony,邀月,***********/

5. ---- CPP_Export_To_Excel_With_Header 'Testdb2','Demo_A','C:TestExcelWithHea

'

6.

7. Create Procedure CPP_Export_To_Excel_With_Header

8. (

9. @db_name varchar(255),

10. @table_name varchar(255),

11. @file_path varchar(255)

12. )

13. as

14.

15. ----Generate column names as a recordset

16. declare @columns varchar(8000), @sql varchar(8000)

17. declare @HeadersOnlyFile varchar(255),@TableDataWithoutHeaders varchar(255)

18. set @HeadersOnlyFile=replace(cast(newid() as VARCHAR(40)),'-','')+''

19.

20. set @TableDataWithoutHeaders=replace(cast(newid() as VARCHAR(40)),'-','')+'2

.xls'

21. select

22. @columns=coalesce(@columns+',','')+column_name+' as '+column_name

23. from

24. information_s

25. where

26. table_name=@table_name

鱼跃家庭制氧机


发布者:admin,转转请注明出处:http://www.yc00.com/web/1711881721a1971365.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信