sql server 查找主键、外键、索引、约束
主键约束
SELECT
tab.
name
AS
[表名],
idx.
name
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);
唯一约束
SELECT
tab.
name
AS
[表名],
idx.
name
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);
外键约束
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)
Check
约束
SELECT
tab.
name
AS
[表名],
chk.
name
AS
[
Check
约束名],
col.
name
AS
[列名],
chk.definition
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)
sql server 查找主键、外键、索引、约束的更多相关文章
- SQL Server修改主、外键和约束
0.创建表 create table Users ( Id int, Name ), Phone ), Email ), Role_Id uniqueidentifier ) go create ta ...
- SQL Server 如何添加删除外键、主键,以及更新自增属性
1.添加删除主键和外键 例如: -----删除主键约束DECLARE @NAME SYSNAMEDECLARE @TB_NAME SYSNAMESET @TB_NAME = 'Date'SELECT ...
- SQL Server数据库学习笔记-外键
关于主键的话大家很好理解,主键的主要作用就是用来标识一条数据是唯一的,也就是保证数据的实体完整性.防止数据重复.但是外键的话就有许多的疑问了,那外键是咋回事儿呢? 1. 外键的定义: 外键(FK)是用 ...
- SQL server查找指定表的所有索引
WITH tmp AS ( SELECT indexname = a.name , tablename = c.name , indexcolumns = d.name , a.indid FROM ...
- 第15课-数据库开发及ado.net-数据库介绍,主键,外键,启动数据库,数据库身份验证方式,建表,分离数据库
第15课-数据库开发及ado.net 数据库介绍,主键,外键,启动数据库,数据库身份验证方式,建表,分离数据库 1. 学习方法 2. 多涨见识 3. 比自己强的人一起,学习更强:比自己更聪明的人 ...
- Django笔记&教程 4-3 模型(models)主键外键
Django 自学笔记兼学习教程第4章第3节--模型(models)主键外键 点击查看教程总目录 参考:https://docs.djangoproject.com/en/2.2/ref/models ...
- Sql Server 2008R2版本中有关外键Foreign的使用
原文:Sql Server 2008R2版本中有关外键Foreign的使用 1. 在数据库设计的过程中往往会想让2张表进行关联而使用到Foreign从而加强2张表之间的约束(如图) 以前有个问题一直没 ...
- Oracle查找表的外键引用关系
Oracle查找表的外键引用关系 select t1.table_name, t2.table_name as "TABLE_NAME(R)", t1.constraint_nam ...
- EF中主表和附表一起提交的话,如果主附表的主键外键已经设定。
EF中主表和附表一起提交的话,如果主附表的主键外键已经设定,如果新增同时新增主表和附表的记录,那么在EF同时提交时,不需要人为的设定附表的主表的主键值,EF会自动为附表添加外键值.
随机推荐
- 使用winsound模块播放声音
import winsound import math s = """3345 1233345 234 431 434 -612 12334567 +1+1345 234 ...
- 【LeetCode】47. Permutations II
Permutations II Given a collection of numbers that might contain duplicates, return all possible uni ...
- 创业就是和靠谱的人一起做热爱的事 印象笔记CEO谈创业
http://www.nowamagic.net/librarys/news/detail/1502在今年美国知名创业孵化器 Y Combinator 的创业学校大会上,印象笔记(Evernote)的 ...
- java socket输入输出中文乱码问题
http://hi.baidu.com/linjk03/item/e2028bfd990c14ea1a111feb 统一了输入输出的编码格式,是不会有乱码问题出现的. 构造Reader或Write ...
- 使用ShareSDK完成第三方(QQ、微信、微博)登录和分享
这几天遇到一个需求:做第三方登录和分享.遇到了一些坑,把整个过程整理记录下来,方便他人,同时也捋一下思路. 当时考虑过把每个平台的SDK下载下来,一个一个弄,一番取舍后决定还是用ShareSDK.这里 ...
- 于C#控制台传递参数和接收参数
前言: 写了这么久程序,今天才知道的一个基础知识点,就是程序入口 static void Main(string[] args) 里的args参数是什么意思 ?惭愧... 需求: 点击一个button ...
- Form_Form Builder的常用方法(概念)
2014-07-07 Created By BaoXinjian
- android自定义控件实例
很多时候android常用的控件不能满足我们的需求,那么我们就需要自定义一个控件了.今天做了一个自定义控件的实例,来分享下. 首先定义一个layout实现按钮内部布局: 01 <?xml ver ...
- redis 基本类型
1 hashes 类型及操作 redis hash 是一个string 类型的 field 和 value 的映射表.他的添加.删除操作时间复杂度都是 O(1) 2 hset,设置 hash fiel ...
- ubuntu16安装配置nginx
Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 是由 Igor Sysoev ...