`

[转]【SQLServer】获取SQL所有用户名、数据库名、所有表名、所有字段名

阅读更多
1、获取所有用户名:
Select name FROM Sysusers where status='2' and islogin='1'
islogin='1'   :表示帐户
islogin='0'   :表示角色
status='2'   :表示用户帐户
status='0'   :表示糸统帐户

2、获取所有数据库名:
Select Name FROM Master..SysDatabases orDER BY Name

3、获取所有表名:
Select Name FROM DatabaseName..SysObjects Where XType='U' orDER BY Name
XType='U'    :表示所有用户表;
XType='S'    :表示所有系统表;

4、获取所有字段名:
Select Name FROM SysColumns Where id=Object_Id('表名'')

5、获取数据库所有类型:
select name from systypes

6、获取主键字段:
Select  name FROM SysColumns Where id=Object_Id('表名') and colid=(select top 1 keyno from sysindexkeys where id=Object_Id('表名'))

7、获取表字段的基本信息:
 程序代码
Select
  字段名=rtrim(b.name),
  主键=CASE WHEN h.id IS NOT NULL  THEN 'PK' ELSE '' END,
  字段类型=type_name(b.xusertype)+CASE WHEN b.colstat&1=1 THEN '[ID(' + CONVERT(varchar, ident_seed(a.name))+','+CONVERT(varchar,ident_incr(a.name))+')]' ELSE '' END,
  长度=b.length, 
  允许空=CASE b.isnullable WHEN 0 THEN 'N' ELSE 'Y' END, 
  默认值=isnull(e.text, ''),
  字段说明=isnull(c.value, '')
FROM sysobjects a, syscolumns b
LEFT OUTER JOIN sysproperties c ON b.id = c.id AND b.colid = c.smallid
LEFT OUTER JOIN syscomments e ON b.cdefault = e.id
LEFT OUTER JOIN (Select g.id, g.colid FROM sysindexes f, sysindexkeys g Where (f.id=g.id)AND(f.indid=g.indid)AND(f.indid>0)AND(f.indid<255)AND(f.status&2048)<>0) h ON (b.id=h.id)AND(b.colid=h.colid)
Where (a.id=b.id)AND(a.id=object_id('要查询的表'))  --要查询的表改成你要查询表的名称
orDER BY b.colid

 程序代码
Select
  表名=case when a.colorder=1 then d.name else '' end,
  表说明=case when a.colorder=1 then isnull(f.value,'') else '' end,
  字段序号=a.colorder,
  字段名=a.name,
  标识=case when COLUMNPROPERTY(a.id,a.name,'IsIdentity')=1 then '√' else '' end,
  主键=case when exists(Select 1 FROM sysobjects where xtype='PK' and name in (Select name FROM sysindexes Where indid in(Select indid FROM sysindexkeys Where id=a.id AND colid=a.colid))) then '√' else '' end,   
  类型=b.name,
  字段长度=a.length,
  占用字节数=COLUMNPROPERTY(a.id,a.name,'PRECISION'),
  小数位数=isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0),
  允许空=case when a.isnullable=1 then '√'else '' end,
  默认值=isnull(e.text,''),
  字段说明=isnull(g.[value],'')
FROM syscolumns a
left join systypes b on a.xusertype=b.xusertype
inner join sysobjects d on (a.id=d.id)and(d.xtype='U')and(d.name<>'dtproperties')
left join syscomments e on a.cdefault=e.id
left join sysproperties g on (a.id=g.id)and(a.colid=g.smallid)
left join sysproperties f on (d.id=f.id)and(f.smallid=0)
--where d.name='要查询的表'         --如果只查询指定表,加上此条件
order by a.id,a.colorder
分享到:
评论
1 楼 shenghuorulan 2013-05-12  
获取主键名错啦 你那个只会获取第一个

相关推荐

    数据库编程期末答疑,卷子讲解,SQL server相关操作讲解,如有侵权请联系删除

    如下是一个简化的员工考勤应用E-R图,请在SQL Server中创建名为YQKG的数据库,包括两个数据文件,一个日志文件,文件名按SQL Server对象命名规范定义,数据文件按10%的比例增长,数据库定义完成后输入如下样本数据。...

    ASP获取数据库表名、库名、字段名的方法

    ASP获取数据库表名,字段名 以SQLServer为例: 代码如下: &lt; %  SET Conn=Server.CreateObject(“ADODB.Connection”)  Conn.Open “Server=IP地址;Provider=sqloledb;Database=库名称;UID=用户名;PWD=密码;”...

    php mysql+sql server 数据库处理类

    入口能数: $TableName | 数据表名称、$FieldArray | 字段列表、$ValueArray | 字段值列表、$KeyField | 关键字段名、$KeyValue | 关键字段值 返回类型:成功返回 1,失败返回0 Tab_Update($TableName,$...

    ORACLE,mysql,sqlserver,sybase数据库装文本软件

    仅导入文件字段名与数据库字段名完全相同的数据,顺序无所谓 3.第一行是列信息,按此列信息创建新表导入数据(暂不用) 4.忽略第一行,无论第一行是什么数据全部忽略,从第二行按列字段顺序匹配装载 必须在-a 参数 &gt; 0...

    数据库操作语句大全(sql)

    在SQLServer中分组时:不能以text,ntext,image类型的字段作为分组依据 在selecte统计函数中的字段,不能和普通的字段放在一起; 13、对数据库进行操作: 分离数据库: sp_detach_db; 附加数据库:sp_attach_db ...

    excel导入sql(excel转sql.zip

    可以将excle文件导入SQL SERVER 的工具,一个将excel文件导入到SQLServer表中的程序 一 双击Input.exe运行程序,将弹出一个窗口,这时请你在"数据库名"后面的输入栏中输入数据库名(如果是千方百剂就是输入帐套名)....

    经典SQL语句大全

    在SQLServer中分组时:不能以text,ntext,image类型的字段作为分组依据 在selecte统计函数中的字段,不能和普通的字段放在一起; 13、对数据库进行操作: 分离数据库: sp_detach_db; 附加数据库:sp_attach_db 后...

    商品销售系统数据库设计.doc

    Microsoft SQL Server 2008 5 设计工具 PowerDesign 6 编程工具 JDBC访问数据库 7 数据库命名规则 数据表:以"t_"开头,后接表名 视图名:以"v_"开头,后接视图名 存储过程名:以"p_"开头,后接过程名 索引名:以"i_...

    C#开发经验技巧宝典

    0962 获取连接SQL Server数据库的名称 563 0963 获取SQL Server的连接统计数据 563 0964 如何调用SQL Server存储过程 563 0965 如何生成SQL数据库脚本 564 0966 SQL Server 2000无法安装的解决办法 565 ...

    sql经典语句一部分

    在SQLServer中分组时:不能以text,ntext,image类型的字段作为分组依据 在selecte统计函数中的字段,不能和普通的字段放在一起; 13、对数据库进行操作: 分离数据库: sp_detach_db; 附加数据库:sp_attach_db 后...

    Qt数据库封装类

    m_pDbProcPic = new CDBProcess("sqlserver"); m_pDbProc-&gt;openDB("mysvr", "mydb", "myusername", "mypwd"); m_pDbProcPic = new CDBProcess("mysql"); m_pDbProc-&gt;openDB("localhost", "mydb", "root", "password...

    excel数据导入sql工具

    一个将excel文件导入到SQLServer表中的程序 一 双击Input.exe运行程序,将弹出一个窗口,这时请你在"数据库名"后面的 输入栏中输入数据库名(如果是千方百剂就是输入帐套名).你如果没对数 据库的登录进行特殊修改的...

    超市管理系统数据库设计(2).doc

    数据库环境说明 5 1.1数据库环境 5 1.2系统开发环境 5 在原始开发阶段,开发平台主要是: 5 系统平台:windows server 2003 5 开发工具:sqlserver 2005 5 2.数据库的命名规则 5 3.需求分析 5 4.概念设计 5 5.逻辑...

    最全的oracle常用命令大全.txt

    SQL&gt;help 命令名 c、显示表结构命令DESCRIBE SQL&gt;DESC 表名 d、SQL*Plus中的编辑命令 显示SQL缓冲区命令 SQL&gt;L 修改SQL命令 首先要将待改正行变为当前行 SQL&gt;n 用CHANGE命令修改内容 SQL&gt;c/旧/新 重新确认是否已...

    小区物业管理系统-数据库课程设计.doc

    外部设计 2.1支持软件 本数据库主要采用微软公司的成熟数据库系统SQL Server2005,提供了较为灵活操作简单的功能,可以为数据库管理员和系统开发人员提 供很好的支持。 3. 结构设计 3.1概念结构设计 在数据库设计中...

    C#编程经验技巧宝典

    111 &lt;br&gt;0184 如何在ASP.NET中获取文件的扩展名 111 &lt;br&gt;0185 如何在ASP.NET中用URL在页面之间传值 112 &lt;br&gt;0186 如何使用IsPostBack实现ASP.NET页面加载 112 &lt;br&gt;0187 如何利用输出缓存技术缓存...

    jdbc基础和参考

    C语言实现的,提供语言和(基于SQL的)数据库进行交互的“一致性”的接口 JDBC:java版本的ODBC JDBC连接数据库的步骤: 1.注册驱动(加载驱动): 注册的方式: 1.使用类加载器(使用反射的方式) Class.for...

    [php]mysql数据库操作——DB类

    $Fileds 字段名,默认为所有(选填) $Condition 查询条件(选填) $Rows 待查询记录条数,为0表示不限制(选填) -- 返回值:布尔 -- 实 例:$DB-&gt;Get('mydb','user,password','order by id desc',10) ************...

    Delphi开发范例宝典目录

    实例269 从SQL Server数据库中提取多媒体文件 347 实例270 向SQL Server中存储Word文档 348 实例271 从SQL Server中提取Word文档 349 8.4 SQL Server服务器应用 350 实例272 和服务器时间同步 350 实例273...

    oracle实验报告

    使用DESCRIBE(缩写DESC)可以列出指定表的基本结构,包括各字段的字段名以及类型、长度、是否非空等信息。 4. 使用SQL*PLUS显示数据库中EMP表的内容 输入下面的查询语句: SQL&gt;SELECT * FROM emp; 按下回车键执行...

Global site tag (gtag.js) - Google Analytics