热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

导出数据库中的所有表的结构

使用下面的存储过程:如果输入表名则取出此表,如果不输入表名则选出全表结构,有问题请继续问我。--此存储过程可以取出所输入表的字段信息&

使用下面的存储过程:
如果输入表名则取出此表,如果不输入表名则选出全表结构,有问题请继续问我。
--此存储过程可以取出所输入表的字段信息,如果表名为空则列出当前数据库中的所有表的信息,
--
如果@WITHVIEW参数不为0则列出视图的字段信息,为0则不列视图信息 CREATE PROCEDURE [dbo].[TABLE_INFO](@TABLENAME VARCHAR(50),@WITHVIEW BIT=0 )
AS
BEGIN if NOT exists (select * from dbo.sysobjects
where id = object_id(N'[dbo].[DATADICT]') and OBJECTPROPERTY(id, N'IsUserTable')=1)
BEGIN IF @TABLENAME IS NULL BEGIN IF @WITHVIEW=0 BEGIN SELECT CASE O.TYPE WHEN 'V ' THEN '视图: ' + O.NAME ELSE '表: ' + O.NAME END AS 表名,C.name AS 列名, T.name AS 类型, C.length AS 长度, C.prec AS 精度, C.scale AS 小数位数, CASE C.ISNULLABLE WHEN 0 THEN 'YES ' ELSE 'NO ' END AS 可否为空FROM sys.syscolumns AS C INNER JOINsys.systypes AS T ON C.xusertype = T.xusertype INNER JOINsys.sysobjects AS O ON C.id = O.idWHERE (O.type = 'U ') AND (O.name NOT IN ('SYSCONSTRAINTS ', 'SYSSEGMENTS '))ORDER BY O.type, O.name, 列名 END ELSE BEGIN SELECT 表名= CASE O.TYPE WHEN 'V ' THEN '视图: '+ O.NAME ELSE '表: '+ O.NAME END ,C.NAME AS 列名,T.NAME AS 类型,C.LENGTH AS 长度,C.PREC 精度,C.SCALE AS 小数位数 , 可否为空= CASE C.ISNULLABLE WHEN 0 THEN 'YES ' ELSE 'NO ' END FROM SYSCOLUMNS C,SYSOBJECTS O ,SYSTYPES T WHERE T.xUSERTYPE=C.xUSERTYPE AND O.ID=C.ID AND (O.TYPE= 'U ' OR O.TYPE= 'V ') AND O.NAME NOT IN ( 'SYSCONSTRAINTS ', 'SYSSEGMENTS ') ORDER BY O.TYPE,O.NAME,C.NAME END END ELSE BEGIN SELECT C.name AS 列名, T.name AS 类型, C.length AS 长度, C.prec AS 精度, C.scale AS 小数位数, CASE C.ISNULLABLE WHEN 0 THEN 'YES ' ELSE 'NO ' END AS 可否为空FROM sys.syscolumns AS C INNER JOINsys.systypes AS T ON C.xusertype = T.xusertype INNER JOINsys.sysobjects AS O ON C.id = O.idWHERE (O.name = @TABLENAME)ORDER BY O.type, O.name, 列名
END
END
ELSE
BEGIN IF NOT @TABLENAME IS NULL BEGIN SELECT @TABLENAME AS 表名, A.NAME AS 列名,C.EXPLAIN AS 说明, B.NAME AS 数据类型, A.LENGTH AS 长度,A.XPREC AS 精度,A.XSCALE AS 小数位数 FROM SYSCOLUMNS A join SYSTYPES AS B on B.XTYPE=A.XTYPE right join DATADICT AS C on C.FIELDS=A.NAME WHERE ID = OBJECT_ID(@TABLENAME) AND C.TABLENAME=@TABLENAME ORDER BY A.NAME END ELSE BEGIN SELECT 表名= CASE O.TYPE WHEN 'V ' THEN '视图: '+ O.NAME ELSE '表: '+ O.NAME END , A.NAME AS 列名,C.EXPLAIN AS 说明, B.NAME AS 数据类型, A.LENGTH AS 长度,A.XPREC AS 精度,A.XSCALE AS 小数位数 FROM SYSCOLUMNS A join SYSTYPES AS B on B.XUSERTYPE=A.XUSERTYPE right join DATADICT AS C on C.FIELDS=A.NAME right join SYSOBJECTS AS O on C.TABLENAME=O.NAME WHERE A.ID = O.ID AND (O.TYPE= 'U ' OR O.TYPE= 'V ') AND O.NAME NOT IN ( 'SYSCONSTRAINTS ', 'SYSSEGMENTS ') ORDER BY O.TYPE, O.NAME,A.NAME END END END


转:https://www.cnblogs.com/goto/archive/2012/08/02/2619934.html



推荐阅读
  • 在洛谷 P1344 的坏牛奶追踪问题中,第一问要求计算最小割,而第二问则需要找到割边数量最少的最小割。通过为每条边附加一个单位权值,可以在求解最小割时优先选择边数较少的方案,从而同时解决两个问题。这种策略不仅简化了问题的求解过程,还确保了结果的最优性。 ... [详细]
  • 手指触控|Android电容屏幕驱动调试指南
    手指触控|Android电容屏幕驱动调试指南 ... [详细]
  • 本文介绍了如何在iOS平台上使用GLSL着色器将YV12格式的视频帧数据转换为RGB格式,并展示了转换后的图像效果。通过详细的技术实现步骤和代码示例,读者可以轻松掌握这一过程,适用于需要进行视频处理的应用开发。 ... [详细]
  • 2012年9月12日优酷土豆校园招聘笔试题目解析与备考指南
    2012年9月12日,优酷土豆校园招聘笔试题目解析与备考指南。在选择题部分,有一道题目涉及中国人的血型分布情况,具体为A型30%、B型20%、O型40%、AB型10%。若需确保在随机选取的样本中,至少有一人为B型血的概率不低于90%,则需要选取的最少人数是多少?该问题不仅考察了概率统计的基本知识,还要求考生具备一定的逻辑推理能力。 ... [详细]
  • 寒假作业解析:第三周 2月12日 第7题
    尽快完成之前的练习任务!每日一练2.1 Problem A Laurenty and Shop 的题目要求是选择两条不同的路线以最小化总的等待时间。简要分析:通过对比不同路线的等待时间,可以找到最优解。此问题可以通过动态规划或贪心算法来解决,具体取决于路线的复杂性和约束条件。 ... [详细]
  • 2014年3月16日 长沙多所高校联合举办第三次学术交流活动
    2014年3月16日,长沙多所高校联合举办了第三次学术交流活动。此次活动旨在促进各高校间的学术合作与交流,吸引了众多师生参与。交流内容涵盖了计算机科学、工程技术等多个领域,为参会者提供了丰富的学习和讨论机会。 ... [详细]
  • 本文深入解析了Java面向对象编程的核心概念及其应用,重点探讨了面向对象的三大特性:封装、继承和多态。封装确保了数据的安全性和代码的可维护性;继承支持代码的重用和扩展;多态则增强了程序的灵活性和可扩展性。通过具体示例,文章详细阐述了这些特性在实际开发中的应用和优势。 ... [详细]
  • 单链表的高效遍历及性能优化策略
    本文探讨了单链表的高效遍历方法及其性能优化策略。在单链表的数据结构中,插入操作的时间复杂度为O(n),而遍历操作的时间复杂度为O(n^2)。通过在 `LinkList.h` 和 `main.cpp` 文件中对单链表进行封装,我们实现了创建和销毁功能的优化,提高了单链表的使用效率。此外,文章还介绍了几种常见的优化技术,如缓存节点指针和批量处理,以进一步提升遍历性能。 ... [详细]
  • Vue ElementUI 实现邮箱地址自动补全功能详解 ... [详细]
  • 微信小程序实现类似微博的无限回复功能,内置云开发数据库支持
    本文详细介绍了如何利用微信小程序实现类似于微博的无限回复功能,并充分利用了微信云开发的数据库支持。文中不仅提供了关键代码片段,还包含了完整的页面代码,方便开发者按需使用。此外,HTML页面中包含了一些示例图片,开发者可以根据个人喜好进行替换。文章还将展示详细的数据库结构设计,帮助读者更好地理解和实现这一功能。 ... [详细]
  • 在数据库开发中,`DROP`、`TRUNCATE` 和 `DELETE` 语句各有其特定的应用场景和行为特点。`DELETE` 语句通过逐行删除数据,并将每个删除操作记录为事务,适用于需要保留事务日志和触发器的场景。相比之下,`TRUNCATE` 语句则会快速清空整个表,不记录单个删除操作,因此执行速度更快,但无法恢复已删除的数据。而 `DROP` 语句不仅删除表中的所有数据,还会删除表结构本身,通常用于不再需要表结构的情况。了解这些区别有助于开发者在实际应用中选择合适的操作方式。 ... [详细]
  • 本文探讨了如何有效地构建和优化微信公众平台账号,涵盖了用户信息管理、内容创作与发布、互动策略及数据分析等方面。通过合理设置用户信息字段,如用户名、昵称、密码、真实姓名和性别等,确保账号的安全性和用户体验。同时,文章还介绍了如何利用微信公众平台的各项功能,提升用户参与度和品牌影响力。 ... [详细]
  • 本文对常见的字符串哈希函数进行了全面分析,涵盖了BKDRHash、APHash、DJBHash、JSHash、RSHash、SDBMHash、PJWHash和ELFHash等多种算法。这些哈希函数在不同的应用场景中表现出各异的性能特点,通过对比其算法原理、计算效率和碰撞概率,为实际应用提供了有价值的参考。 ... [详细]
  • 在Android 4.4系统中,通过使用 `Intent` 对象并设置动作 `ACTION_GET_CONTENT` 或 `ACTION_OPEN_DOCUMENT`,可以从相册中选择图片并获取其路径。具体实现时,需要为 `Intent` 添加相应的类别,并处理返回的 Uri 以提取图片的文件路径。此方法适用于需要从用户相册中选择图片的应用场景,能够确保兼容性和用户体验。 ... [详细]
  • 动态壁纸 LiveWallPaper:让您的桌面栩栩如生(第二篇)
    在本文中,我们将继续探讨如何开发动态壁纸 LiveWallPaper,使您的桌面更加生动有趣。作为 2010 年 Google 暑期大学生博客分享大赛 Android 篇的一部分,我们将详细介绍 Ed Burnette 的《Hello, Android》第三版中的相关内容,并分享一些实用的开发技巧和经验。通过本篇文章,您将了解到如何利用 Android SDK 创建引人入胜的动态壁纸,提升用户体验。 ... [详细]
author-avatar
向日葵一样2502932413
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有