亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來到思海網(wǎng)絡(luò),我們將竭誠為您提供優(yōu)質(zhì)的服務(wù)! 誠征網(wǎng)絡(luò)推廣 | 網(wǎng)站備案 | 幫助中心 | 軟件下載 | 購買流程 | 付款方式 | 聯(lián)系我們 [ 會員登錄/注冊 ]
促銷推廣
客服中心
業(yè)務(wù)咨詢
有事點擊這里…  531199185
有事點擊這里…  61352289
點擊這里給我發(fā)消息  81721488
有事點擊這里…  376585780
有事點擊這里…  872642803
有事點擊這里…  459248018
有事點擊這里…  61352288
有事點擊這里…  380791050
技術(shù)支持
有事點擊這里…  714236853
有事點擊這里…  719304487
有事點擊這里…  1208894568
有事點擊這里…  61352289
在線客服
有事點擊這里…  531199185
有事點擊這里…  61352288
有事點擊這里…  983054746
有事點擊這里…  893984210
當(dāng)前位置:首頁 >> 技術(shù)文章 >> 文章瀏覽
技術(shù)文章

SQL server數(shù)據(jù)在不同數(shù)據(jù)庫中的應(yīng)用

添加時間:2013-9-25 17:27:57  添加: 思海網(wǎng)絡(luò) 

在軟件開發(fā)的初始階段,開發(fā)商們總是想把整個系統(tǒng)的最小的細(xì)節(jié)設(shè)計好了,然后再去單線程的編寫代碼。這樣軟件開發(fā)完成需要很長時間,但開發(fā)商們一直都在這么做。

所以開發(fā)者不得不去縮小他們的野心,先設(shè)計好一個小系統(tǒng),然而這個小系統(tǒng)只是解決了整個系統(tǒng)難題中的一部分。這導(dǎo)致了由不同的團隊設(shè)計和創(chuàng)建的許多小系統(tǒng)幾乎都不能相互之間兼容。

目前,許多組織都聘請了數(shù)據(jù)庫建模者或者DBA,這些人能監(jiān)督數(shù)據(jù)庫設(shè)計和開發(fā)。不幸的是,那些組織只有在出現(xiàn)某些狀況后,才會意識到在他們的員工中需要這樣的人。

數(shù)據(jù)建模者和DBA面對的一個非常普遍的問題就是,如何在不同的數(shù)據(jù)庫中解析SQL數(shù)據(jù)。本文將通過一個可靠的方法來說明這個問題。

一個實例

在這個實例方案中,有兩個包含相似數(shù)據(jù)的數(shù)據(jù)庫:一個使用術(shù)語OrderNumber,另一個使用術(shù)語OrderNo。第一個數(shù)據(jù)庫有關(guān)鍵字而第二個數(shù)據(jù)庫沒有。

首先,你會在兩個數(shù)據(jù)庫中發(fā)現(xiàn)它們的順序是相似的。清單A創(chuàng)建了兩個數(shù)據(jù)庫(Test_Cross_1和Test_Cross_2),每個數(shù)據(jù)庫中有一個表(分別是Orders_1和Orders_2)。

假設(shè)Orders_1包括這些行:

OrderNumberOrderDate

2007-02-23 00:00:00.000

2007-02-24 00:00:00.000

2007-02-25 00:00:00.000

假設(shè)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執(zhí)行合并操作是很簡單的。簡而言之,你要有合法的名字。如清單B 所示。這將不會成功,因為Order_2包括一行Order_1沒有的數(shù)據(jù)。改變連接,加入對外連接符也不會成功,就像你在清單C中看到的那樣。第二個查詢得到跟第一個查詢相同的結(jié)果,因為OrderNo 301不存在于第一個表中。找到這一行,你必須在第二個查詢中,將這個表的順序反轉(zhuǎn)。如清單D。現(xiàn)在你就能發(fā)現(xiàn)不匹配的行了。

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

假設(shè)有一些行存在于Order_1中而不存在于Order_2中。你將上面的查詢翻轉(zhuǎn),它也能工作,然而,隨后你會得到兩個查詢和兩個結(jié)果集,并結(jié)束你的查詢,這些你都必須手動比較。如果每個表只有四行,這是不困難的,但是想象一下如果有 4,000行記錄的話,怎么使用這種不切實際的方法進(jìn)行比較呢。你必須對兩個表的每行沒出現(xiàn)在另外那張表的記錄進(jìn)行檢查。

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
關(guān)鍵字:SQL server、數(shù)據(jù)庫
分享到:

頂部 】 【 關(guān)閉
版權(quán)所有:佛山思海電腦網(wǎng)絡(luò)有限公司 ©1998-2024 All Rights Reserved.
聯(lián)系電話:(0757)22630313、22633833
中華人民共和國增值電信業(yè)務(wù)經(jīng)營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1
網(wǎng)站公安備案編號:44060602000007 交互式欄目專項備案編號:200303DD003  
察察 工商 網(wǎng)安 舉報有獎  警警  手機打開網(wǎng)站