`

[转]【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迁移数据到Oracle.docx

    4. 生成目标数据库对象:在迁移向导中,需要选择正确的数据库对象,例如表名、字段名、视图名、架构名等,并生成目标数据库对象。 5. 编辑新标识符:在迁移过程中,需要编辑新标识符,例如将dbo架构名转换为dbo_...

    数据库编程期末答疑,卷子讲解,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 ...

    BCP命令详解

    BCP 命令可以用来将数据从 SQL Server 导出到文本文件中,也可以将数据从文本文件导入到 SQL Server 中。 BCP 命令共有四个动作可以选择: 1. 导入:这个动作使用 in 命令完成,后面跟需要导入的文件名。例如:bcp...

    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...

    db2 常用命令大全

    coalesce(字段名,转换后的值) -- 对是 null 的字段进行值转换 dayofweek(日期) -- 计算出日期中是周几(1 是周日,2 是周一.......7 是周六) dayofweek_iso -- 计算出日期中是周几 这些命令可以帮助开发人员更好...

    db2中常用的命令大全

    16. 对 null 字段进行值转换:coalesce(字段名,转换后的值) --对 null 字段进行值转换 例如:select coalesce(id,1) from &lt;表名&gt; --对表中 id 如果为 null 转换成 1 17. 计算出日期中是周几:dayofweek(日期) --...

    excel数据导入sql工具

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

    db2常用命令大全.docx

    7. 字段值转换:`coalesce(字段名,转换后的值)` 用于对是 null 的字段进行值转换。 8. 计算日期中的周几:`dayofweek(日期)` 用于计算出日期中是周几(1 是周日,2 是周一.......7 是周六),`dayofweek_iso` 用于...

    超市管理系统数据库设计(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概念结构设计 在数据库设计中...

Global site tag (gtag.js) - Google Analytics