+ -
当前位置:首页 → 问答吧 → SQL——Excel

SQL——Excel

时间:2003-11-26

来源:互联网

有没有办法从SQL Server中读取数据库中的表结构(不是表数据)放到 Excel 中今天整理数据库,发现关系图排版实在麻烦,有没有办法把表的结构弄到 Excel 中去。我需要字段名、字段类型、Not Null,注释、主键、外键的信息。

作者: winak   发布时间: 2003-11-26

使用adox不行吗?我没用过sql所以不太清楚,不过我想应该是此种方法

作者: hzg7818   发布时间: 2003-11-26

哈!终于搞定了今天终于把 Excel 超级利用了一把,HAPPY!

作者: winak   发布时间: 2003-11-27

怎么搞的, 介绍一下

作者: killcet   发布时间: 2003-11-28

引用:
以下是引用winak在2003-11-27 22:49:00的发言:哈!终于搞定了今天终于把 Excel 超级利用了一把,HAPPY!
建议介绍一下整个过程。

作者: cxffxc   发布时间: 2003-11-28

当时用的 Excel 查询数据库,现在回想一下,觉得还是利用 SQL 生成表之后导出到 Excel ,毕竟我要的只是做数据库说明。礼拜一我把整理好的 SQL 语句贴上来——如果有人要的话:)这样整理数据库说明方便多了

作者: winak   发布时间: 2003-11-28

作者: ExcelMan   发布时间: 2003-12-01

楼主,据俺所知.用导出的时候会把数据也一起导出来吧!!!!

作者: nakedant   发布时间: 2003-12-02

引用:
以下是引用nakedant在2003-12-2 14:47:00的发言:楼主,据俺所知.用导出的时候会把数据也一起导出来吧!!!!
如果是那样就不发在这里了:)

作者: winak   发布时间: 2003-12-02

导出的时候选中用SQL语句导出,或者你在SQL的查询分析器里面先执行一下下面的语句,注意需要先指定数据库use NorthwindSELECT(case when a.colorder=1 then d.name else '' end) N'表名',a.colorder N'字段序号',a.name N'字段名',(case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end) N'标识',(case when (SELECT count(*)FROM sysobjectsWHERE (name in(SELECT nameFROM sysindexesWHERE (id = a.id) AND (indid in(SELECT indidFROM sysindexkeysWHERE (id = a.id) AND (colid in(SELECT colidFROM syscolumnsWHERE (id = a.id) AND (name = a.name))))))) AND(xtype = 'PK'))>0 then '√' else '' end) N'主键',b.name N'类型',a.length N'占用字节数',COLUMNPROPERTY(a.id,a.name,'PRECISION') as N'长度',isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0) as N'小数位数',(case when a.isnullable=1 then '√'else '' end) N'允许空',isnull(e.text,'') N'默认值',isnull(g.[value],'') AS N'字段说明'into db_Database_ModuleFROMsyscolumnsa left join systypes bona.xtype=b.xusertypeinner join sysobjects don a.id=d.idandd.xtype='U' andd.name'dtproperties'left join syscomments eon a.cdefault=e.idleft join sysproperties gon a.id=g.id AND a.colid = g.smallidorder by object_name(a.id),a.colorder

作者: winak   发布时间: 2003-12-02

版主的sql水平真是很棒,此代码可以通用!我看你不是把excel超级爽用了一把,而是把sql超级爽用了一把,哈!:)对了,你应该在贴中的代码下面在加上以下代在码:select *from db_Database_Module

[此贴子已经被作者于2004-1-8 10:48:38编辑过]

作者: cpali3023   发布时间: 2004-01-08

我在sql查询分析器中贴入上述sql语句后点执行就有以下信息提示(所影响的行数为 177 行)但没有任何结果输出来,连正常的select查询的列标题都没有,所以我现在有些迷惑,不知这段sql语句都干了些什么呢?(所影响的行数为 177 行)--有没有对数据库作操作类的改动查询呢?请wank解答!

作者: zijing   发布时间: 2004-01-10

这条词句在你的数据库中生成了一个新表db_Database_Module,按11楼我所加的语句在执行一下,你就可以看到你的数据库中所有的表及字段的主要信息。

作者: cpali3023   发布时间: 2004-01-11

Private Sub CommandButton1_Click()Cells.ClearContentsWith ActiveSheet.QueryTables.Add(Connection:="ODBC;DSN=MS Access Database;DBQ=" & ThisWorkbook.path & "\五金件.mdb;;;UID=admin;PWD=219", Destination:=Range("A1"))'位置.CommandText = "SELECT * FROM 材料明细"'工作表名.Refresh BackgroundQuery:=FalseEnd WithEnd Sub

作者: smssms   发布时间: 2004-08-28

正是我需要的,非常感谢!!

作者: tacwuniu   发布时间: 2005-05-20

看不懂,怎么不加注释。

作者: 卧龙布衣   发布时间: 2005-05-21

楼上的和我名字差两个字雷同的朋友,建议您先去资源共享学习下VBA.

初级三以后回来看这些代码就没问题了!

作者: 布衣铁剑   发布时间: 2005-05-22

谢谢铁剑一家子!

作者: 卧龙布衣   发布时间: 2005-06-01

建议楼主用VISIO试试,还可以将表间关连都可以导出来

作者: 烟雨厦江南   发布时间: 2006-01-07

有谁能把楼主在10楼的代码整理一下,没有分行,看得难受,难道以上的代码就一行?就算是一行,也可以用连接符连接分行的代码,否则怎么看得懂?

作者: chenhuafu   发布时间: 2006-02-14

我也想知道啊

作者: .无忧.   发布时间: 2006-02-14

我想把EXCEL表格中的数据导入到SQL SERVER里

并且把SQL SERVER中的数据导出到EXCEL里

那该怎么办啊?

请大家帮忙啊!!!

作者: 忘记黑夜   发布时间: 2006-02-16

高手!!!

作者: ls6860881   发布时间: 2007-03-26

学习

作者: narutoshyb   发布时间: 2007-04-12

厉害

作者: tangj_2005   发布时间: 2007-04-23

学习中....

作者: numen   发布时间: 2007-04-27

谢谢楼主

作者: leekingnet   发布时间: 2007-12-22

SQL2005 出現下图提示document.body.clientWidth*0.5) {this.resized=true;this.width=document.body.clientWidth*0.5;this.style.cursor='pointer';} else {this.onclick=null}" alt="" />

附件

DaBKQupV.gif(15.8 KB)

2007-12-23 11:35

SQL——Excel

作者: nawong   发布时间: 2007-12-23

作者: 大家好2008   发布时间: 2008-12-10

楼主厉害!
学习了!

作者: star-ula   发布时间: 2008-12-11