自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

SQL Server 數(shù)據(jù)導入的實際行為規(guī)范描述

數(shù)據(jù)庫 SQL Server
我們今天主要向大家講述的是實現(xiàn)SQL Server 數(shù)據(jù)導入的實際行為規(guī)范的正確操作步驟,以下就是文章的主要內(nèi)容描述。

此文章主要向大家講述的是SQL Server 數(shù)據(jù)導入的實際行為規(guī)范,如果你對SQL Server 數(shù)據(jù)導入的實際行為規(guī)范有興趣了解的話,你不妨瀏覽以下的文章對其進行了解,以下就是文章的主要內(nèi)容描述。

我最早使用的一個關(guān)系型 DBMS 就是 Microrim's R:Base 4000. R:Base,與其 PC 競爭對手 dBase 不同的是,它是真正的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),是在 20 世紀 80 年代初作為 NASA RIM(關(guān)系信息管理,Relational Information Management)系統(tǒng)的一個 PC 版本開發(fā)出來的。

而我最欣賞的功能之一是它允許用戶在導入過程中查看示例數(shù)據(jù)。盡管像 bcp、DTS、新的 SQL Server 2005 集成服務這樣的工具以及各種移植工具和向?qū)б呀?jīng)將SQL Server 數(shù)據(jù)導入過程自動化到 SQL Server 之中,但這不意味著我們可以一勞永逸。本月,Ron Talmage 提供一些關(guān)于導入數(shù)據(jù)的非常好的常識性建議。

SQL Server DBA(Database Administrator,數(shù)據(jù)庫管理員)發(fā)現(xiàn)他們經(jīng)常使用 T-SQL 導入和處理數(shù)據(jù)。為什么呢?因為一些數(shù)據(jù)傳輸需要技術(shù)成熟的 SQL 所具備的強大功能。最近我剛好完成了另一個SQL Server 數(shù)據(jù)導入的案例,該案例觸動我匯編了一份供我使用的行為規(guī)范列表。

確保將載入的原始數(shù)據(jù)暫存為 varchar 數(shù)據(jù)類型

源自所謂的舊式系統(tǒng)的原始數(shù)據(jù)通常以文本格式傳送,因此我首先總是將原始數(shù)據(jù)載入一個單獨的暫存數(shù)據(jù)庫。我從不嘗試將數(shù)據(jù)直接載入一個成品數(shù)據(jù)庫。

我做的事情是將所有 原始文本數(shù)據(jù)載入相應的原始表,表中的列為 varchar 數(shù)據(jù)類型。(DTS 將自動完成該過程,這樣很好。但是,DTS 還會將列命名為 COL001,因此您不用事先提供列名。)varchar 的主要優(yōu)點是它能夠接收任何數(shù)據(jù) — 甚至是“壞”數(shù)據(jù)。如果您嘗試從一個沒有對用戶輸入的數(shù)據(jù)進行嚴格檢查的舊式系統(tǒng)加載數(shù)據(jù),那么被忽略的數(shù)據(jù)或?qū)懭氘惓N募臄?shù)據(jù)可能比加載的數(shù)據(jù)還多,如果您不想冒這樣的風險,除非接收每一個可能的值。將字符載入 varchar 數(shù)據(jù)類型的列則可以做到這一點。

在暫存表/列名時不要使用非字母數(shù)字字符

您可能無法控制在包含原始數(shù)據(jù)的表中如何對列進行初始命名,但是我會嘗試修改可能包含空格或其他非常規(guī)字符的舊式列名。當列名或表名包含非字母數(shù)字的字符時,我們必須使用方括號或雙引號對其進行分隔。這種代碼不但編寫起來比較困難,而且可讀性較差。

不要在列名中使用關(guān)鍵字

源自舊式系統(tǒng)的數(shù)據(jù)通常包含能夠破壞 SQL 查詢的描述性列名。例如,房地產(chǎn)數(shù)據(jù)可能會包含一個名為 KEY 的列,它用來反映放置在待售房屋上的鑰匙箱。然而,KEY 也是 T-SQL 中的一個關(guān)鍵字 (!),如果使用這樣的列名,查詢操作在直接引用該列名時將失敗。因此,最終您必須用方括號或雙引號分隔含有關(guān)鍵字的列名。

確保使用正確的數(shù)據(jù)類型創(chuàng)建一個暫存表

下一步是創(chuàng)建一個或多個額外的暫存表,這些表有“正確的”數(shù)據(jù)類型。我喜歡使暫存表和目標 OLTP(Online Transaction Processing,聯(lián)機事務處理)數(shù)據(jù)庫中的目的表具有相同的列名。不管怎樣,重要的是原始數(shù)據(jù)中每列的數(shù)據(jù)類型在載入暫存時都將執(zhí)行檢查并予以改正。在 SQL Server 表中找到壞數(shù)據(jù)比在加載失敗的外部文件中找到壞數(shù)據(jù)容易得多。

確保將新列添加到暫存表中

當暫存數(shù)據(jù)沒有相應的列時,您可以添加這些列,然后拆分或合并載入的數(shù)據(jù)。例如,即使目的表分解出街道名和門牌號,地址仍然可能作為一個簡單的字符串載入暫存表。那么您可以在暫存表中添加街道名列和門牌號列,將舊式地址分解為兩個列。這樣做的優(yōu)點是,原始數(shù)據(jù)與新拆分的數(shù)據(jù)并存,因此您能夠通過比較列來測試腳本。

確保使用本地副本來測試填充的產(chǎn)品數(shù)據(jù)

當您準備好要插入暫存表的數(shù)據(jù)時,可以首先通過將其插入成品表的本地副本來測試這些數(shù)據(jù)。有時您只需清空表;有時,您必須填充表。

確保保留產(chǎn)品約束

在副表上總是保留產(chǎn)品約束。這樣,您就能夠測試暫存表數(shù)據(jù)滿足這些約束的程度。這些約束包括 NULL、默認值、檢查、主鍵和外鍵約束。首先保證副表列上的 NULL 或 NOT NULL 屬性與目標系統(tǒng)的相同,然后再逐步檢查其他所有約束。如果您的測試表明暫存數(shù)據(jù)插入過程滿足所有約束,那么您距離成功就只有一步之遙了。

確保在一個產(chǎn)品數(shù)據(jù)副本上測試

雖然將SQL Server 數(shù)據(jù)導入數(shù)據(jù)插入空表將遇到很多潛在的問題,但是不會遇到所有的問題。在通過了所有之前的測試后,確保您將在一個目標數(shù)據(jù)或成品系統(tǒng)的副本(或至少是一個合理的子集)上測試導入。您能夠接收的最終錯誤類型將由數(shù)據(jù)配置決定,而且這是此項測試能夠檢測到的。那么,您就能夠在數(shù)據(jù)庫副本中檢查結(jié)果,甚至可能將應用程序重定向到該副本以便進一步測試和驗證?!緦谧骷?Tom Moreau 補充說,“使用每日成品更新數(shù)據(jù)進行測試可以為數(shù)據(jù)移植做準備。如果原來的系統(tǒng)沒有足夠的約束而新系統(tǒng)有,那么壞數(shù)據(jù)將進入原來的系統(tǒng)并破壞您的移植。” - Ed.】

如果導入過程至此通過了所有測試,那么您可能已經(jīng)準備好進行SQL Server 數(shù)據(jù)導入了,或者至少可以將導入過程交給質(zhì)量管理員 (QA, Quality Assurance) 了。

【編輯推薦】

  1. 批量修改SQL Server 2005表構(gòu)架很簡單!
  2. SQL Server 2008更改服務器身份驗證的基本模式
  3. MS SQL Server 2000系統(tǒng)數(shù)據(jù)類型有哪些?
  4. SQL Server 2005常見錯誤的破解方案
  5. SQL Server 2005允許遠程的配置流程
責任編輯:佚名 來源: 廣州日報
相關(guān)推薦

2010-07-07 11:28:12

SQL Server索

2010-07-05 08:31:25

SQL Server快

2010-06-28 13:27:33

SQL Server視

2010-07-05 12:21:57

SQL Server記

2010-07-06 09:20:30

SQL Server查

2010-07-23 09:25:50

SQL Server導

2010-07-15 14:40:05

SQL Server數(shù)

2010-07-05 14:20:29

2010-07-09 17:16:53

SQL Server數(shù)

2010-07-02 08:53:06

MIS SQL Ser

2010-06-30 11:16:50

SQL Server

2010-07-05 13:29:56

2010-06-17 15:09:49

SQL Server

2010-06-28 12:39:14

SQL Server數(shù)

2010-06-10 11:41:30

2010-06-17 10:02:12

SQL Server數(shù)

2014-08-29 10:24:05

SQL Server

2010-07-08 16:44:21

SQL Server索

2010-07-05 13:36:21

SQL Server

2010-07-20 08:35:54

SQL Server鎖
點贊
收藏

51CTO技術(shù)棧公眾號