国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

解析SQL Server數據應用在不同的數據庫中

2024-08-31 00:49:42
字體:
來源:轉載
供稿:網友

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

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

目前,許多組織都聘請了數據庫建模者或者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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 荆门市| 黄平县| 鹤壁市| 容城县| 舟曲县| 永平县| 同仁县| 怀安县| 雷州市| 商河县| 阳泉市| 瓮安县| 太和县| 育儿| 宜良县| 界首市| 海城市| 安西县| 崇文区| 萍乡市| 梁山县| 南部县| 柳江县| 临沧市| 普格县| 聂荣县| 封开县| 田林县| 武邑县| 剑河县| 鸡东县| 镇雄县| 沙河市| 稻城县| 保德县| 溧阳市| 青阳县| 进贤县| 翁牛特旗| 高平市| 德清县|