--Sql Server 2000

declare @id int,
@name varchar(100),
@s varchar(8000)
declare cur_1 cursor for select id,name from sysobjects where xtype='U' --and id=537768973
open cur_1
fetch cur_1 into @id,@name
while(@@fetch_status=0)
begin
if exists(select * from tempdb..sysobjects where id=object_id('tempdb..##temp'))
drop table ##temp
create table ##temp(名称 varchar(100),数据类型 varchar(100),长度 varchar(100),默认值 varchar(100),注释 varchar(100))
Insert into ##temp(名称,数据类型,长度,默认值,注释)
select '表名:',Cast(@name as varchar(100)),'','',''
union all
select '名称','数据类型','长度','默认值','注释'
union all
select Cast(t3.name as varchar(100)) 名称,Cast(t5.name as varchar(20)) 数据类型,Cast(t3.length as varchar(20)) 长度,isnull(Cast(t6.text as varchar(100)),'') 默认值,isnull(Cast(t4.value as varchar(1000)),'') 注释
from syscolumns t3
left join sysproperties t4 on t3.id=t4.id and t3.colid=t4.smallid
left join systypes t5 on t3.xtype=t5.xusertype
left join syscomments t6 on t3.cdefault=t6.id
where t3.id=@id
union all
select '','','','',''
union all
select '','','','',''
union all
select '-','-','-','-','-' --declare @s varchar(8000)
set @s='Insert Into OpenRowSet(''Microsoft.Jet.OLEDB.4.0'',''Excel 8.0;DataBase=C:\temp.xls'',''select * from [Sheet1$]'') select * from ##temp'
Exec(@s) fetch cur_1 into @id,@name
end
deallocate cur_1
--Sql Server 2008

declare @id int,
@name varchar(100),
@s varchar(8000)
declare cur_1 cursor for select id,name from sysobjects where xtype='U' --and id=37575172
open cur_1
fetch cur_1 into @id,@name
while(@@fetch_status=0)
begin
if exists(select * from tempdb..sysobjects where id=object_id('tempdb..##temp'))
drop table ##temp
create table ##temp(名称 varchar(100),数据类型 varchar(100),长度 varchar(100),默认值 varchar(100),注释 varchar(100))
Insert into ##temp(名称,数据类型,长度,默认值,注释)
select '表名:',Cast(@name as varchar(100)),'','',''
union all
select '名称','数据类型','长度','默认值','注释'
union all
select Cast(t3.name as varchar(100)) 名称,Cast(t5.name as varchar(20)) 数据类型,Cast(t3.length as varchar(20)) 长度,isnull(Cast(t6.text as varchar(100)),'') 默认值,isnull(Cast(t4.value as varchar(1000)),'') 注释
from syscolumns t3
left join sys.extended_properties t4 on t3.id=t4.major_id and t3.colorder=t4.minor_id
left join systypes t5 on t3.xtype=t5.xusertype
left join syscomments t6 on t3.cdefault=t6.id
where t3.id=@id
union all
select '','','','',''
union all
select '','','','',''
union all
select '-','-','-','-','-' --declare @s varchar(8000)
set @s='Insert Into OpenRowSet(''Microsoft.Jet.OLEDB.4.0'',''Excel 8.0;DataBase=C:\temp.xls'',''select * from [Sheet1$]'') select * from ##temp'
Exec(@s) fetch cur_1 into @id,@name
end
deallocate cur_1

Sql Server 2000/2008 用Sql导出数据表结构(包括注释)到Excel的更多相关文章

  1. 【SQL Server复制】数据库复制:修改表结构、新增表、新增存储过程 会被复制到订阅服务器?

    转自:https://www.cnblogs.com/happyday56/p/3849018.html 关键字:sql server复制 [SQL Server高可用性]数据库复制:修改表结构.新增 ...

  2. SQL Server 存储(1/8):理解数据页结构

    我们都很清楚SQL Server用8KB 的页来存储数据,并且在SQL Server里磁盘 I/O 操作在页级执行.也就是说,SQL Server 读取或写入所有数据页.页有不同的类型,像数据页,GA ...

  3. SQL SERVER 2000 迁移后SQL SERVER代理服务启动错误分析

    公司有一个老系统,这个系统所用的数据库是SQL SERVER 2000,它所在的Dell服务器已经运行超过10年了,早已经过了保修服务期,最近几乎每周会出现一次故障,加之5月份另外一台服务器坏了两个硬 ...

  4. SQL Server 2000/2005 分页SQL — 单条SQL语句

    有关分页 SQL 的资料很多,有的使用存储过程,有的使用游标.本人不喜欢使用游标,我觉得它耗资.效率低:使用存储过程是个不错的选择,因为存储过程是经过预编译的,执行效率高,也更灵活.先看看单条 SQL ...

  5. SQL Server性能优化(8)堆表结构介绍

    一.表结构综述 下图是SQL Server中表的组织形式(其中分区1.分区2是为了便于管理,把表进行分区,放到不同的硬盘数据文件里.默认情况下,表只有一个分区.).表在硬盘上的存放形式,有堆和B树两种 ...

  6. mysql导出数据表结构,必须退出mysql命令.重新使用msyqldump命令

    只导出数据库中所有表结构(-d 减去数据) 导出所有表结构和数据 mysqldump -uroot --default-character-set=utf8 -p123-d必须空格good>H: ...

  7. SQL Server 存储(2/8):理解数据记录结构

    在SQL Server :理解数据页结构我们提到每条记录都有7 bytes的系统行开销,那这个7 bytes行开销到底是一个什么样的结构,我们一起来看下. 数据记录存储我们具体的数据,换句话说,它存在 ...

  8. Windows 7 X64 SQL Server 2000 企业管理器无法建立新表

    问题现象: 当建立新表时会出现一个空白的窗口,敲击键盘输入后就会出现应用出错,然后退出. 解决方案: 选中某个已经存在的表,再点右键,新建表就可以正常操作了.

  9. 如何隐藏掉SQL Server中自带系统数据库,数据表,存储过程等显示文件,只显示用户的数据库,数据表等文件

    企业管理器了,---->   编辑该数据库的注册属性--->“常规”属性页下面-->“显示系统数据库和系统对象”的选项去掉

随机推荐

  1. <十一>读<<大话设计模式>>之抽象工厂模式

    学习设计模式有一段时间了,对设计模式有一个体会,就是没那么难.就是设计程序遵循一些原则,让代码可复用,在改动的时候不用涉及太多的类,扩展方便.抽象工厂模式名字听起来抽象.但理解起来一点也不抽象,用语言 ...

  2. NSNotificationCenter实现原理

    # 前言 Cocoa中使用NSNotification.NSNotificationCenter和KVO来实现观察者模式,实现对象间一对多的依赖关系. 本篇文章主要来讨论NSNotification和 ...

  3. kafka负载均衡相关资料收集(一)

    key为null时Kafka会将消息发送给哪个分区? 当你编写kafka Producer时, 会生成KeyedMessage对象. 1 KeyedMessage<K, V> keyedM ...

  4. 转:一篇很全面的freemarker教程

    最近在使用freemarker,于是在网上找了一些教程学习,如下: 以下内容全部是网上收集: FreeMarker的模板文件并不比HTML页面复杂多少,FreeMarker模板文件主要由如下4个部分组 ...

  5. socket编程及API简介

    什么是TCP/IP.UDP? TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,是一个工业标准的协议集,它是为广域 ...

  6. Kibana常用命令

    一.范围(>500) totalTime: [500 TO *] 二.不等于 NOT monitorName: "XXX" 三.字符匹配 正则表达式:    +url:/.* ...

  7. mysql合并binlog

    例如: PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL DAY);

  8. php执行多个存储过程

    2014年3月18日更新: 从以前的使用原生代码来看,只需要将结果集关闭即可,即 $this -> queryID -> close(); . // 使用mysqli方式,修改DbMysq ...

  9. Innodb的内存结构

    1.缓冲池从1.0.x版本开始,允许有多个缓冲池实例. mysql> show variables like 'innodb_buffer_pool_size'\G ************** ...

  10. iOS runtime执行时具体解释

    什么是runtime? runtime直译就是执行时间,run(跑,执行) time(时间),网上大家都叫它执行时,它是一套比較底层的纯C语言API,属于一个C语言库,包括了非常多底层的C语言API, ...