2019-2-25SqlServer 中所有表、列、视图、索引、主键、外键等常用sql
sp_help Accounts_Users 其中Accounts_Users 表示表名
sp_columns Accounts_Users
exec sp_helpconstraint '表名'
在数据库内创建的每个对象(约束、默认值、日志、规则、存储过程等)在表中占一行。只有在 tempdb 内,每个临时对象才在该表中占一行。
sysobjects 表结构:
根据sysobjects 表格我们可以得到如下的查询:
1.获取所有表结构
select name as [表名] from sysobjects where xtype='U'and name !='dtproperties'
2.获取所有的列
SELECT d.name 表名,
a.name 字段名,
( CASE
WHEN Columnproperty(a.id, a.name, 'IsIdentity') = 1 THEN '是'
ELSE '否'
END ) 标识,
( CASE
WHEN Columnproperty(a.id, a.name, 'IsIdentity') = 1 THEN IDENT_Seed( d.name )
ELSE 0
END ) 标识种子 ,
( CASE
WHEN Columnproperty(a.id, a.name, 'IsIdentity') = 1 THEN Ident_Incr(d.name)
ELSE 0
END )
标识增长量,
( CASE
WHEN (SELECT Count(*)
FROM sysobjects
WHERE ( name IN (SELECT name
FROM sysindexes
WHERE ( id = a.id )
AND ( indid IN (SELECT indid
FROM sysindexkeys
WHERE ( id = a.id )
AND ( colid IN (SELECT colid
FROM syscolumns
WHERE ( id = a.id )
AND ( name = a.name )) )) )) )
AND ( xtype = 'PK' )) > 0 THEN '是'
ELSE '否'
END ) 主键,
b.name 类型,
a.length 占用字节数,
Columnproperty(a.id, a.name, 'PRECISION') AS 长度,
Isnull(Columnproperty(a.id, a.name, 'Scale'), 0) AS 小数位数,
( CASE
WHEN a.isnullable = 1 THEN '是'
ELSE '否'
END ) 允许空,
Isnull(e.text, '') 默认值,
Isnull(g.[value], ' ') AS [说明]
FROM
syscolumns a
LEFT JOIN systypes b
ON a.xtype = b.xusertype
left 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.class
AND f.minor_id = 0
WHERE b.name IS NOT NULL and d.name is not null
--and d.name='{0}' --如果只查询指定表,加上此条件
ORDER BY a.id,
a.colorder
3.获取所有的视图
select b.name as [视图名称],a.text as [视图脚本] from syscomments a inner join sysobjects b on a.id=b.id where b.type='V'
4.获取所有主键约束
SELECT
tab.name AS [表名],
idxCol.is_descending_key as [是否降序],
idx.name AS [约束名称],
idx.type_desc as [约束类型],
col.name AS [约束列名]
FROM sys.indexes idx JOIN sys.index_columns idxCol ON (idx.object_id = idxCol.object_id AND idx.index_id = idxCol.index_id AND idx.is_primary_key = 1) JOIN sys.tables tab ON (idx.object_id = tab.object_id) JOIN sys.columns col ON (idx.object_id = col.object_id AND idxCol.column_id = col.column_id);
5.获取所有唯一约束
SELECT tab.name AS [表名],
idxCol.is_descending_key as [是否降序],
idx.name AS [约束名称],
idx.type_desc as [约束类型],
col.name AS [约束列名] FROM sys.indexes idx JOIN sys.index_columns idxCol ON (idx.object_id = idxCol.object_id AND idx.index_id = idxCol.index_id AND idx.is_unique_constraint = 1) JOIN sys.tables tab ON (idx.object_id = tab.object_id) JOIN sys.columns col ON (idx.object_id = col.object_id AND idxCol.column_id = col.column_id);
6.获取所有外键约束
select oSub.name AS [子表名称], fk.name AS [外键名称], SubCol.name AS [子表列名], oMain.name AS [主表名称], MainCol.name AS [主表列名] from sys.foreign_keys fk JOIN sys.all_objects oSub ON (fk.parent_object_id = oSub.object_id) JOIN sys.all_objects oMain ON (fk.referenced_object_id = oMain.object_id) JOIN sys.foreign_key_columns fkCols ON (fk.object_id = fkCols.constraint_object_id) JOIN sys.columns SubCol ON (oSub.object_id = SubCol.object_id AND fkCols.parent_column_id = SubCol.column_id) JOIN sys.columns MainCol ON (oMain.object_id = MainCol.object_id AND fkCols.referenced_column_id = MainCol.column_id)
7.获取所有Check约束
SELECT tab.name AS [表名], chk.name AS [约束名称], col.name AS [约束列名], chk.definition AS [约束定义] FROM sys.check_constraints chk JOIN sys.tables tab ON (chk.parent_object_id = tab.object_id) JOIN sys.columns col ON (chk.parent_object_id = col.object_id AND chk.parent_column_id = col.column_id)
8.获取所有默认约束
SELECT tab.name AS [表名], def.name AS [约束名称], col.name AS [约束列名], def.definition AS [约束定义] FROM sys.default_constraints def JOIN sys.tables tab ON (def.parent_object_id = tab.object_id) JOIN sys.columns col ON (def.parent_object_id = col.object_id AND def.parent_column_id = col.column_id)
9.获取所有索引约束
SELECT
tab.name AS [表名],
idx.is_unique as [是否唯一索引],
idxCol.is_descending_key as [是否降序],
idx.name AS [约束名称],
idx.type_desc as [约束类型],
col.name AS [约束列名] FROM sys.indexes idx JOIN sys.index_columns idxCol ON (idx.object_id = idxCol.object_id AND idx.index_id = idxCol.index_id AND idx.is_unique_constraint= 0 and is_primary_key=0) JOIN sys.tables tab ON (idx.object_id = tab.object_id) JOIN sys.columns col ON (idx.object_id = col.object_id AND idxCol.column_id = col.column_id);
2019-2-25SqlServer 中所有表、列、视图、索引、主键、外键等常用sql的更多相关文章
- 通过 jdbc 分析数据库中的表结构和主键外键
文章转自:http://ivan4126.blog.163.com/blog/static/20949109220137753214811/ 在某项目中用到了 hibernate ,大家都知道 hib ...
- 查询SQLServer2005中某个数据库中的表结构、索引、视图、存储过程、触发器以及自定义函数
查询SQLServer2005中某个数据库中的表结构.索引.视图.存储过程.触发器以及自定义函数 2013-03-11 09:05:06| 分类: SQL SERVER|举报|字号 订阅 ( ...
- ORACLE动态sql在存储过程中出现表或视图不存在的解决方法
Oracle动态sql在存储过程中出现表或视图不存在的解决方法 CREATE OR REPLACE PROCEDURE P_test is strsql varchar2(2000); BEGIN ...
- 第15课-数据库开发及ado.net-数据库介绍,主键,外键,启动数据库,数据库身份验证方式,建表,分离数据库
第15课-数据库开发及ado.net 数据库介绍,主键,外键,启动数据库,数据库身份验证方式,建表,分离数据库 1. 学习方法 2. 多涨见识 3. 比自己强的人一起,学习更强:比自己更聪明的人 ...
- MySQL创建表时加入的约束以及外键约束的的意义
1,创建表时加入的约束 a) 非空约束,not null b) 唯一约束,unique c) 主键约束,primary key d) 外键约束,foreign key 1,非空约束,针对某个字段设置其 ...
- EF中主表和附表一起提交的话,如果主附表的主键外键已经设定。
EF中主表和附表一起提交的话,如果主附表的主键外键已经设定,如果新增同时新增主表和附表的记录,那么在EF同时提交时,不需要人为的设定附表的主表的主键值,EF会自动为附表添加外键值.
- (原)未能启用约束。一行或多行中包含违反非空、唯一或外键约束的值与DATEADD
SQLServer2014,查询分析器中 这样的脚本是没有问题的:AND TPO.CREATEON <= DATEADD(DAY, 1, '2017/3/3 0:00:00') 但.NET D ...
- MS SQL Server中数据表、视图、函数/方法、存储过程是否存在判断及创建
前言 在操作数据库的时候经常会用到判断数据表.视图.函数/方法.存储过程是否存在,若存在,则需要删除后再重新创建.以下是MS SQL Server中的示例代码. 数据表(Table) 创建数据表的时候 ...
- 备忘:MySQL中修改表中某列的数据类型、删除外键约束
-- MySQL中修改表中某列的数据类型 ALTER TABLE [COLUMN] 表名 MODIFY 列名 列定义; -- 删除外键约束 SHOW CREATE TABLE 表名; -- 复制CON ...
- mysql获取表列信息、主键信息
/** * 获取物理表中已存在的列信息 * @param tbName 表名 * @return results 查询结果 */ fun getExistColumnInfo(tbName:Strin ...
随机推荐
- pycharm 运行错误信息显示乱码
pycharm版本 解决方法:
- redis的list取出数据方式速度测试
redis测试: package business; import java.io.BufferedReader; import java.io.File; import java.io.FileIn ...
- python实现简单的百度云自动下载
最近女同让我帮助从百度云下载200个文件,给了我连接和提取码,这种重复的工作不适合人做写了一个简单的爬虫 #coding=utf-8 ''' 自动填写提取码下载百度云资源 方法: for 读取文件中的 ...
- Pandas系列(三)-缺失值处理
内容目录 1. 什么是缺失值 2. 丢弃缺失值 3. 填充缺失值 4. 替换缺失值 5. 使用其他对象填充 数据准备 import pandas as pd import numpy as np in ...
- WPF布局的应用
一 写在开头1.1 本文内容本文主要内容是使用WPF来实现几个简单的界面. 二 登录窗口小例子2.1 实现代码XAML代码: <Window x:Class="LoginDialog. ...
- An Apple a day keeps the doctor away
An apple a day keeps the doctor away. 一天一苹果,不用请医生. 活学活用:apple as like as an apple to an oyster 毫无相同之 ...
- [物理学与PDEs]第3章习题3电磁场的矢势在 Lorentz 规范下满足的方程
设 $\phi$ 及 ${\bf A}$ 分别为电磁场的标势及矢势 (见第一章 $\S$ 6). 试证明: 若 $\phi$ 及 ${\bf A}$ 满足条件 $$\bex \phi+\cfrac{1 ...
- 让iframe自适应高度-真正解决
需求:实现 iframe 的自适应高度,能够随着页面的长度自动的适应以免除页面和 iframe 同时出现滚动条的现象. (需要只有iframe出现滚动条) 本人一开始这么写:会造成只有主页面加载是设定 ...
- SecureCRT的安装与破解(过程很详细!!!)
SecureCRT的安装与破解(过程很详细!!!) 使用SecureCRT可以方便用户在windows环境下对linux主机进行管理,这里为大家讲一下SecureCRT的破解方法,仅供大家参考学习: ...
- TIME_WAIT 太多的解决办法
TIME_WAIT 客户端与服务器端建立TCP/IP连接后关闭SOCKET后,服务器端连接的端口状态为TIME_WAIT.主动关闭的一方在发送最后一个 ack 后 就会进入 TIME_WAIT 状态 ...