首页 > 语言 > 关键词  > 正文

解析SQL Server数据应用在不同的数据库中

2007-09-04 12:29 · 稿源:<a href=http://news.ccidnet.com target=_blank>赛迪网</a>

在软件开发的初始阶段,开发商们总是想把整个系统的最小的细节设计好了,然后再去单线程的编写代码。这样软件开发完成需要很长时间,但开发商们一直都在这么做。

所以开发者不得不去缩小他们的野心,先设计好一个小系统,然而这个小系统只是解决了整个系统难题中的一部分。这导致了由不同的团队设计和创建的许多小系统几乎都不能相互之间兼容。

目前,许多组织都聘请了数据库建模者或者DBA,这些人能监督数据库设计和开发。不幸的是,那些组织只有在出现某些状况后,才会意识到在他们的员工中需要这样的人。

数据建模者和DBA面对的一个非常普遍的问题就是,如何在不同的数据库中解析SQL数据。本文将通过一个可靠的方法来说明这个问题。

一个实例

在这个实例方案中,有两个包含相似数据的数据库:一个使用术语OrderNumber,另一个使用术语OrderNo。第一个数据库有关键字而第二个数据库没有。

首先,你会在两个数据库中发现它们的顺序是相似的。清单A创建了两个数据库(Test_Cross_1和Test_Cross_2),每个数据库中有一个表(分别是Orders_1和Orders_2)。

假设Orders_1包括这些行:

以下为引用的内容:
OrderNumberOrderDate
2007-02-23 00:00:00.000
2007-02-24 00:00:00.000
2007-02-25 00:00:00.000
假设Orders_2包括这些行:
OrderNo  OrderDate
2007-02-23 00:00:00.000
2  2007-02-24 00:00:00.000
2007-02-24 00:00:00.000
3011 2007-02-25 00:00:00.000

一旦你明白了如何引用表SQL执行合并操作是很简单的。简而言之,你要有合法的名字。如清单B所示。这将不会成功,因为Order_2包括一行Order_1没有的数据。改变连接,加入对外连接符也不会成功,就像你在清单C中看到的那样。第二个查询得到跟第一个查询相同的结果,因为OrderNo 301不存在于第一个表中。找到这一行,你必须在第二个查询中,将这个表的顺序反转。如清单D。现在你就能发现不匹配的行了。

以下为引用的内容:
OrderNo   OrderDate   OrderNumberOrderDate
1   2007-02-23 00:00:00.0001  2007-02-23 00:00:00.000
2   2007-02-24 00:00:00.0002  2007-02-24 00:00:00.000
2007-02-24 00:00:00.000 NULL NULL
2007-02-25 00:00:00.0003 011 2007-02-25 00:00:00.000

假设有一些行存在于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

举报

  • 相关推荐
  • O域核心!金仓数据库支撑海南移动核心故障管理系统升级上线

    中国移动海南公司成功升级国产化核心故障管理系统"O域",采用金仓数据库技术支持。该系统创新构建五位一体监控体系,实现故障处理效率指数级提升。通过全栈国产化突破,采用分布式数据核心架构,实现99.999%高可用性和毫秒级响应。在2024年超强台风"摩羯"登陆期间,系统凭借同城双中心灾备架构稳定运行,保障了通信命脉。金仓数据库通过PLSQL优化、固定缓冲池等核心技术,使系统性能显著提升:告警分析速度提升450%,拓朴查询效率跃升644%,历史数据清理效率提高7倍,存储空间降低12%。

  • 金仓数据库26周年|淬火砺重器,万里再扬帆

    金仓数据库26年发展历程:从萨师煊教授70年代引入数据库概念,到王珊教授团队1999年创立金仓公司实现产业化突破,见证了中国数据库从无到有的发展。金仓坚持自主创新,打造KES融合数据库产品体系,拥有700多项专利,服务金融、能源等国家重点行业,装机量超百万套。公司构建产学研生态,培养数万名专业人才,推动国产数据库生态建设。站在新起点,金仓将继续以自主可控技术支撑千行百业数字化转型,助力数字中国建设。

  • 首届央国企数智化与转型战略成果发布会在京召开,TencentOS Server展示应用成果

    6月26日,首届央国企数智化转型战略成果发布会在京举行,发布《央国企数智化发展研究报告》等重要成果。腾讯云受邀参会,其自研操作系统TencentOS Server凭借"西游四件套"等创新技术方案获得关注。该系统已实现超1000万套部署,支撑金融、政务等行业国产化需求,具备三大优势:1)性能提升方面,CPU利用率提升15-45%,整机能耗降低5-10%;2)技术创新方面,独创qGPU虚拟化技术可降低60%硬件成本;3)生态适配方面,已完成与国产主流硬件的互认证。目前该系统已助力农业银行等金融机构实现5%-25%性能提升,并成为金融、党政领域首选方案。作为国内三家具备Linux研发能力的厂商之一,腾讯云将持续打磨技术,支撑企业数字化转型需求。

  • 硬盘丢失了数据怎么恢复?硬盘数据恢复的6种方法

    文章分析了硬盘数据丢失的常见原因及恢复方法。数据丢失主要源于人为误操作、硬件故障、软件系统问题和环境因素四类。针对不同情况,介绍了6种恢复方法:回收站还原、系统版本回退、备份还原、Mac系统的TimeMachine、命令行操作以及专业数据恢复软件。其中专业软件如转转大师能深度扫描硬盘,支持多种文件格式恢复,操作简便且成功率高。文章强调数据丢失后应避免写入操作,根据实际情况选择合适恢复方式,并建议做好日常备份预防数据丢失。

  • 用数据丈量时代:神策十年进化论

    神策数据成立于2015年4月,从服务互联网客户的SaaS模式起步,逐步发展为国内数字化用户运营市场的领先企业。十年来,公司业务模式不断升级,现已服务金融、零售等大型客户,产品体系涵盖客户数据引擎(CDP)、客户旅程分析引擎(CJA)等核心产品,并接入AI大模型提升智能化水平。目前服务2500+付费客户,覆盖30多个行业,获得近100项专业认证和100+奖项。公司持续推动产品迭代

  • MCP server资源网站去哪找?国内MCP服务合集平台有哪些?

    在人工智能飞速发展的今天,AI模型与外部世界的交互变得愈发重要。一个好的工具不仅能提升开发效率,还能激发更多的创意。今天,我要给大家介绍一个宝藏平台——AIbase(<https://mcp.aibase.cn/>),一个专注于MCP(Model Context Protocol)服务的全球集合平台,它正在悄然改变AI应用开发的格局。 平台精心挑选了全球最受欢迎的MCP服务进行推荐。这些服务经过了市场的检验,具�

  • MCP协议资源服务去哪找?国内MCP server资源网站推荐

    ​在人工智能技术飞速发展的今天,AI模型与外部工具和服务的交互需求日益增长。为了满足这一需求,一个名为 AIbase 的全球MCP服务器集合平台(https://mcp.aibase.cn/)应运而生,为开发者和企业提供了前所未有的便利和强大的功能支持。

  • 百度网盘上线知识问答功能:你的数据会自己“说话”了

    ,百度网盘宣布上线知识问答”功能,变成活的知识库”。 据了解,百度网盘通过AI技术整合用户在网盘中的数据,如学习资料、生活照片、办公文件等多源信息,形成结构化知识库。 它帮助用户快速查找”、问答”、创作”,实现知识的长期沉淀与高效复用。 从存储工具到知识中枢,百度网盘实现了从被动存储”到主动管理”的升级,构建你的第二大脑”。 它支持多模�

  • 雷军回应小米YU7销量爆单:自己看了好几遍销量数据才敢分享

    今日晚间,小米董事长雷军开启返场直播,详细介绍了小米YU7的订单、交付情况。 雷军回应YU7的销量火爆:其实在YU7发布前,我是非常担心的,人们都说我凡尔赛,有什么可担心的?我当时在想的有三点。 首先,SUV市场很大但竞争很激烈,ModelY比大家想象的要强大很多,连续多年全球销冠,国内厂商一波又一波冲击却都没能撼动Model Y,小米YU7能做到吗? 其次,YU7是一款不�

  • 重磅发布 | 可信数据空间企业调研:需求、挑战与建议

    2025年6月,数篷科技联合公共数据联盟对近50家企业开展"国家数据基础设施——可信数据空间建设"调研。研究发现:大部分企业认识到可信数据空间在提升数据安全防护能力、实现跨组织数据流通、促进数据要素运营等方面具有重要意义。技术需求方面,企业认为身份认证与权限管理、数据互通、数据沙箱等是建设可信数据空间的重要技术;部署方式上,大型企业倾向自建私有化部署,中小企业更青睐政府或龙头企业主导的可信数据空间,但大部分企业面临资源与成本投入、专业人才缺乏等挑战。70%的企业将陆续启动可信数据空间建设。未来建议探索可持续商业化模式,发挥龙头企业示范引领作用,聚焦标杆落地实践,并关注轻量化、智能化、高性能等技术发展方向。