sql server sql查询数据库的表,字段,主键,自增,字段类型等信息
1、查询数据表的属性(名称、说明、是否主键、数据类型、是否自增)
SELECT t1.name columnName,case when t4.id is null then 'false' else 'true' end as pkColumn,
case when COLUMNPROPERTY( t1.id,t1.name,'IsIdentity') = 1 then 'true' else 'false' end as autoAdd
,t5.name jdbcType
,cast(isnull(t6.value,'') as varchar(2000)) descr
FROM SYSCOLUMNS t1
left join SYSOBJECTS t2 on t2.parent_obj = t1.id AND t2.xtype = 'PK'
left join SYSINDEXES t3 on t3.id = t1.id and t2.name = t3.name
left join SYSINDEXKEYS t4 on t1.colid = t4.colid and t4.id = t1.id and t4.indid = t3.indid
left join systypes t5 on t1.xtype=t5.xtype
left join sys.extended_properties t6 on t1.id=t6.major_id and t1.colid=t6.minor_id
left join SYSOBJECTS tb on tb.id=t1.id
where tb.name='APIInfo' and t5.name<>'sysname'
order by t1.colid asc
若只是简单查询列名及字段类型/长度等信息,直接用下面语句即可
SELECT name,type_name(xtype) AS type,length,(type_name(xtype)+'('+CONVERT(varchar,length)+')') as t
FROM syscolumns
WHERE (id = OBJECT_ID('view_UserInfo'))
以上sql,碰到字段类型为:hierarchyid、geometry、geography时,查询的字段信息不对,可使用以下sql:
------sqlserver 查询某个表的列名称、说明、备注、类型等
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 parent_obj=a.id 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
sys.extended_properties g
on
a.id=G.major_id and a.colid=g.minor_id
left join
sys.extended_properties f
on
d.id=f.major_id and f.minor_id=0
--如果只查询指定表,加上此where条件,tablename是要查询的表名;去除where条件查询所有的表信息
where
d.name='Test'
order by
a.id,a.colorder
sql server sql查询数据库的表,字段,主键,自增,字段类型等信息的更多相关文章
- SQL Server中查询数据库及表的信息语句
/* -- 本文件主要是汇总了 Microsoft SQL Server 中有关数据库与表的相关信息查询语句. -- 下面的查询语句中一般给出两种查询方法, -- A方法访问系统表,适应于SQL 20 ...
- oracle数据库创建表且主键自增
唠叨几句:几年前的知识忘却了,整理一下笔记,提供一下方便 1.创建数据库表 设置主键 create table users( userid number(10) primary key, /*主键,自 ...
- SQL Server 2008 查询所有用户表
SQL Server 2008 查询所有用户表的T-SQL语句是: SELECT * FROM sysobjects WHERE [xtype] = 'U' 或者是: SELECT * FROM sy ...
- SQL Server 基础 01 数据库、表操作
对着书慢慢学习,一天一点点! 数据库操作 (create.alter.drop) --3-3-1 /create database 语句创建数据库 create database testSQL - ...
- SQL Server -----创建sqlserver 数据库 、表
新建数据库 1.右击 选择新建数据库 2.起一个名字 选择保存位置 3.放在之前建好的的文件夹中 点击确定 4.都要选择好 点击确定 5.确定之后如图 6.新建表 7.见一个表,常说的要满足三大 ...
- 二、Sql Server 基础培训《进度2-关于主键(知识点学习)》
学习作业2: 问题1:主键都有哪些方式? 问题2:本次实战案例建立的主键采用哪种方式? 问题3:猜猜金蝶K3WISE建立的主键采用哪种方式? 问题4:谈谈手工主键增长设置具体实现思路?(选 ...
- 关于数据库主从表、主键PRIMARY KEY 外键约束 FOREIGN KEY 约束----NOT NULL,DEFAULT,CHECK
如果由两个列共同组成主键,而且一个子表将主键作为可为空值的外键来继承,就可能得到错误的数据.可在一个外键列中插入有效的值,但在另一个外键列中插入空值.然后,可添加一个数据表检查约束,在可为空的外键中检 ...
- 通过jdbc获取数据库中的表结构 主键 各个表字段类型及应用生成实体类
http://www.cnblogs.com/lbangel/p/3487796.html 1.JDBC中通过MetaData来获取具体的表的相关信息.可以查询数据库中的有哪些表,表有哪些字段,字段的 ...
- 修改sql server实例、数据库、表、字段的排序规则
转自:http://blog.51cto.com/jimshu/1095780 概念与详情请参考:字符编码与排序规则:https://www.cnblogs.com/gered/p/9145123.h ...
- sql server 中查询数据库下有多少张表以及同义词等信息
--查询数据库有多少张表SELECT count(0) from sysobjects where xtype = 'u' 复制代码 解释:sysobjects系统对象表. 保存当前数据库的对象.如约 ...
随机推荐
- Django ImportError 模块路径正确,且将文件夹设置为Source Root
问题描述: 在用PyCharm进行Django项目开发时,由于业务需求需要增加一个外键字段,但在引入外键关联的model时,报错ImportError 解决方案: 无奈中,尝试更改导入模块语句的位置, ...
- 你的ABAP程序给佛祖开过光么?来试试Jerry这个小技巧
最近Jerry在忙一个项目,技术栈换成了nodejs平台,语言换成了JavaScript,因为赶项目进度,一直没时间更新公众号.感谢大家的支持,关注人数还是慢慢地增长到了3000. 今天我们来聊聊一个 ...
- 关于Oracle11g R2的学习笔记
进来由于工作需要开始有SQLServer向Oracle转型学习,想把学习写到这里作为记录和备忘. Oracle 11g R2下面都简称:Oracle 第一:Oracle的安装 在安装过程没有 ...
- JavaScript基础进阶之常用字符串方法总结
前面三篇文章简单的把JavaScript基础内容过了一遍,我们已经可以用JavaScript写一些简单的代码了. 今天主要总结一下JavaScript中String对象中自带的一些方法,来帮助我们处理 ...
- HBase TableExistsException: hbase:namespace
这个报错一般存在于独立安装Zookeeper集群中. 报这个错的操作时这样的, 先停掉了了Hbase formatZK后重启Hbase 启动hbase shell 后HMaster挂掉,看log里就有 ...
- 【洛谷】【搜索(dfs)】P1363 幻想迷宫
[题目描述:] 幻象迷宫可以认为是无限大的,不过它由若干个N*M的矩阵重复组成.矩阵中有的地方是道路,用'.'表示:有的地方是墙,用'#'表示.LHX和WD所在的位置用'S'表示.也就是对于迷宫中的一 ...
- Linux环境更改Jenkins的主目录
Linux环境更改Jenkins的主目录 Linux环境中,Jenkins主目录默认在/root/.jenkins Jenkins储存所有的数据文件在这个目录下. 你可以通过以下几种方式更改: 1.使 ...
- node-webkit,nwjs 打包启动启动很慢解决办法
要开发一个桌面程序,可选择的有nwjs和electron,但是electron不支持xp,客户还是有一部分系统是用xp的,只能用nwjs. 由于程序需要安装很多npm的模块,node_module文件 ...
- Opencv——摄像头设置
VideoCapture capture(0);/*设置摄像头参数 不要随意修改capture.set(CV_CAP_PROP_FRAME_WIDTH, 1080);//宽度 capture.set( ...
- UOJ#34. 多项式乘法(NTT)
这是一道模板题. 给你两个多项式,请输出乘起来后的多项式. 输入格式 第一行两个整数 nn 和 mm,分别表示两个多项式的次数. 第二行 n+1n+1 个整数,表示第一个多项式的 00 到 nn 次项 ...