sql查询约束
写作业的时候发现书上竟然找不到查询约束的语句,百度搜了好久的资料,终于查询成功,在这里记录下来
主键约束
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查询约束的更多相关文章
- SQL查询-约束-多表
一.SQL语句查询 1.聚合函数 COUNT()函数,统计表中记录的总数量 注:COUNT()返回的值为Long类型;可通过Long类的intValue()方法 ...
- SQL查询--约束
在慕课网上学习时记的关于oracle中约束概念的基础笔记,当初一直对约束的概念不清不楚的,所以找了些资料来看 约束是数据库用来确保数据满足业务规则的手段 约束的作用:定义规则.确保完整性 1. ...
- MySQL 基本语法(1.表字段操作,2表记录管理 3.运算符管理4.SQL查询 5.约束6.索引
.表字段的操作 .语法:alter table 表名 执行动作; .添加字段(add) .添加到末尾 alter table 表名 add 字段名 数据类型; .添加到第一列 alter table ...
- Oracle常用SQL查询(2)
三.查看数据库的SQL 1 .查看表空间的名称及大小 select t.tablespace_name, round ( sum (bytes / ( 1024 * 1024 )), 0 ) ts ...
- SQL 查询性能优化----解决书签查找
先来看看什么是书签查找: 当优化器所选择的非聚簇索引只包含查询请求的一部分字段时,就需要一个查找(lookup)来检索其他字段来满足请求.对一个有聚簇索引的表来说是一个键查找(key lookup), ...
- SQL查询数据库是否存在
在实际工作中会遇到通过SQL查询数据库是否存在的情况,下面一些语句可以提供一些帮助,本文的语句是在SQL08R2中测试的 1,查询当前数据库服务器所有数据库 select * From master ...
- ORACLE 常用SQL查询
一.ORACLE的启动和关闭 1 .在单机环境下 要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su - oracle a.启动ORACLE系统 oracle > sv ...
- SQL反模式学习笔记18 减少SQL查询数据,避免使用一条SQL语句解决复杂问题
目标:减少SQL查询数据,避免使用一条SQL语句解决复杂问题 反模式:视图使用一步操作,单个SQL语句解决复杂问题 使用一个查询来获得所有结果的最常见后果就是产生了一个笛卡尔积.导致查询性能降低. 如 ...
- SQL Server - 约束 CONSTRAINT
总结 约束放置在表中,以下五种约束: NOT NULL 非空约束C 指定的列不允许为空值 UNIQUE 唯一约束U 指定的列中没有重复值,或该表中每一个值或者每一组值都将是唯一的 PRIMARY KE ...
随机推荐
- java读取classpath下properties文件注意事项
1.properties文件在classpath根路径下读取方式 Properties properties = new Properties(); properties.load(BlogIndex ...
- 用MODI OCR 21种语言
作者:马健邮箱:stronghorse_mj@hotmail.com发布:2007.12.08更新:2012.07.09按照<MODI中的OCR模块>一文相关内容进行修订2012.07.0 ...
- 如何破解IDEA
https://blog.csdn.net/samery1020/article/details/79489164 http://idea.lanyus.com/ 我们在选择JAVA 使用IDEA时都 ...
- docker常用命令行集锦
对工作中用到的docker命令行进行一个汇总,方便以后的命令行查询,同时也为了加强记忆,会把工作中用到的命令,持续更新上 1.查看私有仓库都有哪些镜像 curl -X GET http://10.27 ...
- json互转笔记
JSON.parse()与JSON.stringify()的区别 JSON.parse()[从一个字符串中解析出json对象] 例子: //定义一个字符串 var data='{"name& ...
- 编译 ambari 2.7.3
官方给的教程比较简单,需要事先安装的工具也是这里列一点,那里列一点.在此记录一下编译要点(在 centos 7 下). 1. 事先需要安装的工具 yum install -y git svn node ...
- P2900 [USACO08MAR]土地征用Land Acquisition
\(\color{#0066ff}{ 题目描述 }\) 约翰准备扩大他的农场,眼前他正在考虑购买N块长方形的土地.如果约翰单买一块土 地,价格就是土地的面积.但他可以选择并购一组土地,并购的价格为这些 ...
- FMDB----SQL----数据库
#pragma mark -- 数库 - (void)createDatabase{ //路径 NSString *path = [NSString stringWithFormat:@"% ...
- js 点击图片放大,再点击缩小还原
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Educational Codeforces Round 13 B
Description The girl Taylor has a beautiful calendar for the year y. In the calendar all days are gi ...