258.导出表结构为excel

本文介绍了一种使用SQL Server的存储过程和T-SQL语句将数据库表结构导出到Excel的方法。通过定义变量和游标,可以批量处理数据库中的所有表,生成包含表名、字段名、数据类型等信息的Excel文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

--导出表结构为Excel
declare @dbname sysname,@fname nvarchar(1000)
select @dbname=N'pubs'	               --要生成结构的库名
	,@fname=N'c:\'+@dbname+N'.xls' --导出的excel文件名

--导出excel处理
declare @s nvarchar(4000)
set @s='bcp "'+
	+N'select top 100 percent '
	+N' case c.colid when 1 then o.name else N'''' end as 表名,'
	+N' c.colid as 序号,'
	+N' c.name as 字段名,'
	+N' t.name 数据类型,'
	+N' c.prec as 长度,'
	+N' p.value as 字段说明,'
	+N' m.text as 默认值'
	+N' from '+quotename(@dbname)+N'.dbo.sysobjects o'
	+N' inner join '+quotename(@dbname)+N'.dbo.syscolumns c on o.id=c.id'
	+N' inner join '+quotename(@dbname)+N'.dbo.systypes t on c.xusertype=t.xusertype'
	+N' left join '+quotename(@dbname)+N'.dbo.sysproperties p on c.id=p.id and c.colid = p.smallid'
	+N' left join '+quotename(@dbname)+N'.dbo.syscomments m on c.cdefault=m.id'
	+N' where o.xtype in(N''U'') and o.status>=0'
	+N' order by c.id,c.colid'
	+N'" queryout "'+@fname
	+N'" /P"" /w'
exec master..xp_cmdshell @s,no_output
go


--导出表结构为Excel

declare @id varchar(20),@tb sysname,@sql nvarchar(4000)
declare tb cursor for
select id=cast(id as varchar),name from sysobjects where xtype='U' and status>0
open tb
fetch next from tb into @id,@tb
while @@fetch_status=0
begin
	set @sql='select top 100 percent 序号=c.colid
	,c.name as 字段名
	,t.name 数据类型
	,c.prec as 长度
	,p.value as 字段说明
	,m.text as 默认值
from syscolumns c
	inner join systypes t on c.xusertype=t.xusertype
	left join sysproperties p on c.id=p.id and c.colid = p.smallid
	left join syscomments m on c.cdefault=m.id
where c.id='+@id+'
order by c.colid'
	exec p_exporttb @sqlstr=@sql,@path='c:\',@fname='aa.xls',@sheetname=@tb
	fetch next from tb into @id,@tb
end
close tb
deallocate tb
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值