不同数据库之间的内连接

时间:2014-11-20 10:48:53

标签: sql sql-server join

我想在名为DeltaDatabase的数据库中使用以下脚本创建表:

CREATE TABLE [dbo].[OutStatus](
[Id] [bigint] IDENTITY(1,1) NOT NULL,
[OutId] [int] NOT NULL,
[StatusType] [varchar](255) NULL,
[StatusDate] [datetime] NULL)

然后,我希望从另一个名为INNER JOIN的数据库中CoreDatabase一列到此表中。

sourceId中的列名为Client。换句话说,OutId需要是SourceId的外键。

如何使用create table脚本将该列加入到来自其他数据库的OutStatus表中?

2 个答案:

答案 0 :(得分:1)

检索数据的基本语法是:

SELECT * 
FROM CoreDatabase.dbo.Client c
INNER JOIN DeltaDatabase.dbo.OutStatus os ON c.SourceId = os.OutId

您需要使用以下代码完全限定表名:DatabaseName.Schema.TableName

您可能希望限制列或添加where子句以减少返回的数据。

就跨数据库创建外键而言,it's not something you can do。您必须使用触发器或其他逻辑来维护主键和外键之间的参照完整性。

答案 1 :(得分:0)

尝试以下查询

Select * from DeltaDatabase.dbo.OutStatus OUS
Inner Join CoreDatabase.dbo.Client CL on OUS.OutId=CL.sourceId