Sql server 确定可以在两个sql server表之间进行连接的位置

Sql server 确定可以在两个sql server表之间进行连接的位置,sql-server,Sql Server,对sql server来说非常陌生。我有一个数据库,大约有20个表,每个表大约有40列。如何选择两个表并查看它们是否有共同的列 我基本上想看看我能在哪里做连接。。如果有更好的方法快速告诉我在哪里可以合并来自两个表的信息,那也会很有帮助 尝试在SQL Management Studio中的数据库关系图中找到表之间的关系。首先,在关系数据库中没有“可联接表和/或列”的概念。您始终可以列出两个关系(=表),它们将一个关系中的每一行与另一个关系中的每一行交叉(它们的交叉/carthesian乘积),然后

对sql server来说非常陌生。我有一个数据库,大约有20个表,每个表大约有40列。如何选择两个表并查看它们是否有共同的列


我基本上想看看我能在哪里做连接。。如果有更好的方法快速告诉我在哪里可以合并来自两个表的信息,那也会很有帮助

尝试在SQL Management Studio中的数据库关系图中找到表之间的关系。

首先,在关系数据库中没有“可联接表和/或列”的概念。您始终可以列出两个关系(=表),它们将一个关系中的每一行与另一个关系中的每一行交叉(它们的交叉/carthesian乘积),然后根据某个谓词(如果谓词同时包含两个关系的列,则也称为“连接”)过滤这些关系

“可联接”表/列的概念只有在考虑数据库模式时才会出现。模式的作者可以要求数据库引擎通过外键强制执行某些引用完整性

现在,如果您的数据库模式做得很好(也就是说,它的作者很善良/聪明,在整个模式中都有引用完整性),那么您就可以知道哪些表是可连接的(通过哪些列)

要查找这些外键,可以为每个表运行
sp\u help'databasename.tablename'
(如果是当前数据库,可以省略
databasename.
部分)

此命令将输出有关给定表的一些事实,如其列(及其数据类型、所需性等)、索引等。在接近末尾的某个地方,它将列出外键以及它的主键作为外键导入其他表的位置(如果有)

对于作为外键导入到另一个表中的每个键,都有一个连接的候选谓词

请注意,仅当外键设置正确时,此步骤才起作用。如果没有,您可以修复数据库模式(但要做到这一点,您必须已经知道哪些表是可连接的)。此外,它不会显示其他数据库(在同一服务器或链接服务器中)上的可联接表


这对视图也不起作用。

我尝试了sp_帮助“tablename”,但收到以下错误消息:“数据库“master”中不存在对象“tablename”,或者该对象对此操作无效。”我得到了建议的解决方案(即sp_帮助)。但是我看不到对主键/外键的任何引用,也看不到与其他表的潜在连接-我是否缺少什么?