首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何列出引用SQL Server中给定表的所有外键?

要列出SQL Server中给定表的所有外键,您可以使用以下查询:

代码语言:sql
复制
SELECT f.name AS ForeignKey,
       OBJECT_NAME(f.parent_object_id) AS TableName,
       COL_NAME(fc.parent_object_id, fc.parent_column_id) AS ColumnName,
       OBJECT_NAME (f.referenced_object_id) AS ReferenceTableName,
       COL_NAME(fc.referenced_object_id, fc.referenced_column_id) AS ReferenceColumnName
FROM sys.foreign_keys AS f
INNER JOIN sys.foreign_key_columns AS fc
    ON f.OBJECT_ID = fc.constraint_object_id;

这个查询将返回一个包含以下列的表:

  • ForeignKey:外键的名称
  • TableName:包含外键的表的名称
  • ColumnName:包含外键的表中的列名
  • ReferenceTableName:被引用表的名称
  • ReferenceColumnName:被引用表中的列名

这个查询将显示给定数据库中所有表的所有外键。如果您只想查看特定表的外键,您可以在查询的 WHERE 子句中添加一个条件,例如:

代码语言:sql
复制
WHERE OBJECT_NAME(f.parent_object_id) = 'YourTableName'

将 'YourTableName' 替换为您要查询的表的名称。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 【21】进大厂必须掌握面试题-65个SQL面试

    什么是唯一? 唯一标识一行。 每个允许多个值。 允许为空值。 Q11。什么是通过强制两个数据之间链接来维护引用完整性。...子表引用主键。 约束可防止会破坏子表与父之间链接操作。 Q12。您所说数据完整性是什么意思? 数据完整性定义了存储在数据库数据准确性和一致性。...列出不同类型联接? 有多种类型联接用于检索之间数据。有四种类型联接,即: 内部联接:MySQL内部联接是最常见联接类型。它用于从满足联接条件多个返回所有行。...缺点: 存储过程唯一缺点是它只能在数据库执行,并占用数据库服务器更多内存。 Q58。列出所有类型用户定义函数?...SQL Server中有哪些不同身份验证模式?如何更改? Windows模式和混合模式– SQL和Windows。

    6.8K22

    【DB笔试面试423】​SQL Server采用什么方法可以保证数据完整性?

    题目 SQL Server采用什么方法可以保证数据完整性? 答案 答案:可以采用如下规则来保证数据完整性: (1) 实体完整性 实体完整性表示每张主键唯一且不能为空。...(3) 引用完整性 在插入或删除记录时,引用完整性保持之间已定义关系。...在SQL Server 2000引用完整性基于与主键之间或与唯一之间关系(通过Foreign Key和CHECK约束)。引用完整性确保键值在所有中一致。...这样一致性要求不能引用不存在值,如果键值更改了,那么在整个数据库,对该键值所有引用要进行一致更改。 (4) 用户定义完整性 用户定义完整性能够定义不属于其它任何完整性分类特定业务规则。...所有的完整性类型都支持用户定义完整性(CREATE TABLE 所有列级和级约束、存储过程和触发器)。

    94320

    使用管理门户SQL接口(二)

    过程总是包括区段过程,而不管管理门户SQL界面左侧过程设置如何。 可以使用Catalog Details选项卡获得关于单个、视图、过程和缓存查询更多信息。...只有当当前某个字段对另一个有一个或多个引用时,引用才会出现在信息。 这些对其他引用作为指向所引用信息链接列出。...触发:为表显示触发器列表显示:触发名称,时间事件,订单,代码。 约束:表格字段列表,显示:约束名称,约束类型和约束数据(括号列出字段名称)。约束包括主键,和唯一约束。...主键是定义,唯一;它仅列出一次。此选项列出约束名称约束;使用显示组件字段逗号分隔列表约束数据列出了一次涉及多个字段约束。约束类型可以是唯一主键,隐式主键,或隐式。...以下示例返回字段名称和所有唯一,主键,和Check Constraints约束名称: SELECT Column_Name,Constraint_Name FROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE

    5.2K10

    SqlAlchemy 2.0 中文文档(四十)

    定义 SQL 是一个级构造,它将该一个或多个列约束为仅允许存在于另一组列值,通常但不总是位于不同上。我们称被约束列为列,它们被约束到列为引用列。...也可以在级别使用 ForeignKeyConstraint 对象定义。此对象可以描述单列或多列。多列称为复合,几乎总是引用具有复合主键。...定义SQL 是一个级构造,它限制该一个或多个列只允许存在于另一组列值,通常但不总是位于不同。我们将受到限制列称为列,它们被约束到列称为引用列。...也可以在级别定义,使用ForeignKeyConstraint对象。此对象可以描述单列或多列。多列被称为复合,并且几乎总是引用具有复合主键。...约束 SQL 约束。 conv 标记一个字符串,指示名称已经通过命名约定转换。 定义两列之间依赖关系。 约束 约束。

    25110

    MySQL(七)联结

    一、联结基础知识 1、关系 把信息分解成多个,一类数据一个,各表通过某些常用值(即关系设计关系(relational))互相关联; 2、(foreign key):为某个一列,...子句正确联结, where子句指示MySQL匹配AA_id和BB_id相匹配,要匹配两列以A.A_id和B.B_id完全限定名(当引用列可能存在二义性,必须使用完全限定名(用一个点分隔名和列名...子句,在这里on等同于where) 3、联结多个 SQL对一条select语句中可以联结数目没有限制,创建规则也基本相同(首先列出所有,然后定义之间关系) PS:MySQL在运行时关联指定每个以处理联结...,应至少有一个列出现在不止一个(被联结列);标准联结返回所有数据,自然联结排除多次出现,只返回一次。...一般使用select *通配符,对其他列使用明确自己来完成,通配符只对第一个使用,所有其他列明确列出。 4、外部联结 用来检索包含了在相关没有关联行行,这种类型联结称为外部联结。

    73210

    sqlserver创建视图索引「建议收藏」

    下表 SET 选项必须设置显示值为RequiredValue列出现以下情况时: 创建视图和视图上后续索引。 在创建时,在视图中引用。...其他要求 除对 SET 选项和确定性函数要求,还必须满足下列要求: 执行 CREATE INDEX 用户必须是视图所有者。...视图必须仅引用与视图位于同一数据库。 视图无法引用其他视图。...–对 sys.syscomments 包含 CREATE VIEW 语句文本项进行加密。 使用 WITH ENCRYPTION 可防止在 SQL Server 复制过程中发布视图。...--对 sys.syscomments 包含 CREATE VIEW 语句文本项进行加密。 使用 WITH ENCRYPTION 可防止在 SQL Server 复制过程中发布视图。

    3.4K20

    Mysql学习笔记,持续记录

    = utf8mb4 collation-server = utf8mb4_unicode_ci init_connect='SET NAMES utf8mb4' 重启Mysql,完事 查询某个所有...换句话说,在建立分组时,指定所有列都一起计算(所以不能从个别的列取回数据)。 group by 子句中列出每个列都必须是检索列或有效表达式(但不能是聚集函数)。...使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你SQL语句。...创建失败几种原因 字段与关联字段类型不匹配(包括编码格式不匹配) 名字是一个已经存在键值,要保证名字唯一 mysql引擎引起创建不能保存或者不能发挥作用情况,mysql...在navicat设定表格主键 有 主键1,主键2,主键3,区别,主键1不能被级联更新(删除)(CASCADE) 存在默认值,引起冲突 混合键值缺少索引引起情况,需要为他单独申请索引 在sql

    1.2K50

    SQL命令 CREATE TABLE(五)

    字段和引用字段数量和列出顺序必须相对应。 省略字段名:FOREIGN KEY (CustomerNum)引用Customers。...SQL支持以下引用操作: NO ACTION SET DEFAULT SET NULL CASCADE NO ACTION-删除行或更新被引用键值时,将检查所有引用,以查看是否有任何行引用要删除或更新行...SET NULL-删除行或更新被引用键值时,将检查所有引用,以查看是否有任何行引用要删除或更新行。如果是,则该操作会导致引用要删除或更新字段设置为NULL。字段必须允许空值。...如果字段没有默认值,它将被设置为NULL。需要注意是,在包含缺省值条目的被引用必须存在一行。 CASCADE -删除被引用行时,将检查所有引用,以查看是否有任何行引用要删除行。...这意味着INSERT或UPDATE操作可能会为字段指定一个与被引用行不对应值。NOCHECK关键字还阻止执行引用操作子句。SQL查询处理器可以使用来优化之间联接。

    1.8K50

    【重学 MySQL】十四、显示结构

    【重学 MySQL】十四、显示结构 在MySQL,查看或显示结构是一个常见需求,它可以帮助你了解表包含哪些列、每列数据类型、是否允许为空(NULL)、是否有默认值、是否设置了主键或等约束条件...它会列出列名、数据类型、是否允许为空、信息、默认值以及其他额外信息(如果有的话)。...这个查询会返回列名、数据类型、是否允许为空、默认值、信息(如主键、)以及额外信息(如自增)。...使用SHOW CREATE TABLE命令 虽然SHOW CREATE TABLE命令主要用于显示创建SQL语句,但它也间接地展示了结构,包括所有的列定义、索引、等。...SHOW CREATE TABLE 名; 这个命令会返回创建该完整SQL语句,包括所有的列定义、索引、约束等。这对于理解表完整结构或复制表结构到其他数据库非常有用。

    14510

    mysql基础

    简介:如何查看表基本结构信息 查看数据库所有:show tables; 查看表结构:desc 名; 查看创建sql语句:show create table 名; \G :有结束...就是作用于两个数据之间链接一列或多列,用来保证之间数据完整性和准确性。...添加约束: 语法:foreign key (字段名) references 关联名(关联字段名) 注意:主键跟字段类型一定要相 create table方法: CREATE TABLE...主键跟字段类型一定要相同 (2)要使用约束引擎一定得是InnoDB引擎,MyISAM是不起作用 (3)在干掉索引之前必须先把约束删除,才能删除索引 第7集 mysql核心知识之联合索引...• 中经常查数据字段,可以考虑建立索引。 • 想要保证数据唯一性,可以考虑建立唯一索引。 • 想要保证俩张数据完整性跟准确性,可以考虑建立约束。

    1.6K10

    一枚女程序员眼中mysql,值得收藏

    用于关联两个。 复合:复合(组合)将多个列作为一个索引,一般用于复合索引。 索引:使用索引可快速访问数据库特定信息。索引是对数据库中一列或多列值进行排序一种结构。...类似于书籍目录。 参照完整性:参照完整性要求关系不允许引用不存在实体。与实体完整性是关系模型必须满足完整性约束条件,目的是保证数据一致性。 李四 嘿,mysql是关系型数据库吗?...MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。 Mysql是开源,所以你不需要支付额外费用。...列出所有进程 show processlist 观察所有进程 多秒没有状态变化(干掉),kill id ; 查看超时日志或者错误日志 (做了几年开发,一般会是查询以及大批量插入会导致cpu与...老三 小二 如何列出所有数据库? 如何列出某个数据库内所有? 1.

    1.2K80

    MySQL8 中文参考(二)

    MySQL 对外约束实现与 SQL 标准在以下关键方面有所不同: 如果父中有多行具有相同引用键值,InnoDB会像其他具有相同键值父行不存在一样执行检查。...SQL 标准MATCH子句控制如何处理复合(多列)NULL值,当与引用主键进行比较时。MySQL 基本上实现了MATCH SIMPLE定义语义,允许全部或部分为NULL。...在这种情况下,包含这种(子表)行可以被插入,即使它与引用(父任何行都不匹配。(可以使用触发器实现其他语义。) 出于性能原因,MySQL 要求引用列被索引。...另一方面,NDB存储引擎要求在任何作为引用列上显式唯一(或主键)。 对于包含非唯一或包含NULL值引用处理对于诸如UPDATE或DELETE CASCADE等操作并不明确定义。...MySQL 要求列被索引;如果您创建了一个具有约束但在给定列上没有索引,将会创建一个索引。 你可以从信息模式KEY_COLUMN_USAGE获取有关外信息。

    18810

    MySQL基础SQL编程学习2

    一个 FOREIGN KEY 指向另一个 UNIQUE KEY(唯一约束),FOREIGN KEY 约束用于预防破坏之间连接行为,也能防止非法数据插入列因为它必须是它指向那个值之一...(即约束主键) SET NULL:则当在主键删除对应记录时,首先检查该记录是否有对应,如果有则设置子表键值为null(一样是约束主键,不过这就要求该允许取null) 5..."P_Id" 列是 "Persons" PRIMARY KEY (主键) -- "Orders" "P_Id" 列是 "Orders" FOREIGN KEY () -...--级联删除 2.MySql 如何删除未命名?...在添加FOREIGN KEY时候必须先创建约束所依赖,并且该列为该主键(对方关联字段必须是主键); Oracle数据库,对指定进行增删改情况,子表:谁创建谁就是子表,父

    7.3K30

    数据库

    ,它就是主键 是与另一张关联,能确定另一个记录 比如: 有三个: 客户:记录客户信息,如客户编号,客户名称,地址,联系方式等 商品:记录商品信息,比如商品编号,商品名称,品牌...,单价,库存数量等 订单:包括订单信息 一条订单记录:包括客户编号,商品编号,商品数量,金额等属性 客户编号是客户主键,它就是订单 约束:一种限制,通过对表行或列数据做出限制,来确保数据完整性...默认default • foreign key 表字段类型 • 在mysql包含数据类型很多,这里主要列出来常用几种 • 数字:int,decimal,float • 字符串:varchar...(on)相匹配行,还列出table1(左连接)、或右table2(右连接)、或两个(全连接)中所有符合WHERE过滤条件数据行。...一般都是用左连接或者连接。 其中,[OUTER]部分可以不写,(LEFT | RIGHT | FULL)部分要写其中一个。 2、1左连接:左表列出全部,右列出匹配记录。

    2.2K30
    领券