科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道SQL Server数据应用在不同的数据库中(2)

SQL Server数据应用在不同的数据库中(2)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

在软件开发的初始阶段,开发商们总是想把整个系统的最小的细节设计好了,然后再去单线程的编写代码。

作者:010032 来源:赛迪网 2007年8月29日

关键字: 数据 SQL Server SQL Server 各版本 数据库

  • 评论
  • 分享微博
  • 分享邮件

假设有一些行存在于Order_1中而不存在于Order_2中。你将上面的查询翻转,它也能工作,然而,随后你会得到两个查询和两个结果集,并结束你的查询,这些你都必须手动比较。如果每个表只有四行,这是不困难的,但是想象一下如果有4,000行记录的话,怎么使用这种不切实际的方法进行比较呢。你必须对两个表的每行没出现在另外那张表的记录进行检查。

CREATE DATABASE [Test_Cross_1] ON PRIMARY 
( NAME = N'Test_Cross_1', FILENAME = N'
C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLDATATest_Cross_1.mdf', 
SIZE = 2048KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ) 
LOG ON ( NAME = N'Test_Cross_1_log', 
FILENAME = N'C:aProgram FilesMicrosoft 
SQL ServerMSSQL.1MSSQLDATATest_Cross_1_log.ldf', 
SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)GO

USE [Test_Cross_1]

GO

CREATE TABLE [dbo].[Orders_1]
( [OrderNumber] [int] NOT NULL,
 [OrderDate] [datetime] NOT NULL, 
CONSTRAINT [PK_Orders_1] PRIMARY KEY CLUSTERED 
( [OrderNumber] ASC)WITH (PAD_INDEX = OFF, 
STATISTICS_NORECOMPUTE = OFF, 
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, 
ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]

CREATE DATABASE [Test_Cross_2] ON PRIMARY 
( NAME = N'Test_Cross_2', 
FILENAME = N'C:Program FilesMicrosoft 
SQL ServerMSSQL.1MSSQLDATATest_Cross_2.mdf', 
SIZE = 2048KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ) 
LOG ON ( NAME = N'Test_Cross_2_log', 
FILENAME = N'C:Program FilesMicrosoft 
SQL ServerMSSQL.1MSSQLDATATest_Cross_2_log.ldf', 
SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)GO

CREATE TABLE [dbo].[Orders_2]
( [OrderNo] [int] NOT NULL, [OrderDate] [datetime] 
NOT NULL CONSTRAINT [DF_Orders_2_OrderDate] 
DEFAULT (getdate()), CONSTRAINT [PK_Orders_2] 
PRIMARY KEY CLUSTERED ( [OrderNo] ASC)WITH 
(PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, 
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, 
ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

清单A

SELECT * FROM Test_Cross_1.dbo.Orders_1INNER 
JOIN Test_Cross_2.dbo.Orders_2

ON Test_Cross_1.dbo.Orders_1.OrderNumber

清单B

SELECT * FROM Test_Cross_1.dbo.Orders_1LEFT OUTER 
JOIN Test_Cross_2.dbo.Orders_2

ON Test_Cross_1.dbo.Orders_1.OrderNumber

清单C

SELECT * FROM Test_Cross_2.dbo.Orders_2LEFT OUTER 
JOIN Test_Cross_1.dbo.Orders_1

ON Test_Cross_2.dbo.Orders_2.OrderNo

清单D
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章