电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

SQL Server 數(shù)據(jù)導(dǎo)入:行為規(guī)范

瀏覽:163日期:2023-11-03 14:29:00

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

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

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

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

我做的事情是將所有 原始文本數(shù)據(jù)載入相應(yīng)的原始表,表中的列為 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)機事務(wù)處理)數(shù)據(jù)庫中的目的表具有相同的列名。不管怎樣,重要的是原始數(shù)據(jù)中每列的數(shù)據(jù)類型在載入暫存時都將執(zhí)行檢查并予以改正。在 SQL Server 表中找到壞數(shù)據(jù)比在加載失敗的外部文件中找到壞數(shù)據(jù)容易得多。

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

當暫存數(shù)據(jù)沒有相應(yīng)的列時,您可以添加這些列,然后拆分或合并載入的數(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ù)副本上測試

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

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

主站蜘蛛池模板: 北京网站建设首页,做网站选【优站网】,专注北京网站建设,北京网站推广,天津网站建设,天津网站推广,小程序,手机APP的开发。 | 大型果蔬切片机-水果冬瓜削皮机-洗菜机切菜机-肇庆市凤翔餐饮设备有限公司 | 美名宝起名网-在线宝宝、公司、起名平台| 科昊仪器超纯水机系统-可成气相液氮罐-美菱超低温冰箱-西安昊兴生物科技有限公司 | 日本SMC气缸接头-速度控制阀-日本三菱伺服电机-苏州禾力自动化科技有限公司 | 次氯酸钠厂家,涉水级次氯酸钠,三氯化铁生产厂家-淄博吉灿化工 | 长沙一级消防工程公司_智能化弱电_机电安装_亮化工程专业施工承包_湖南公共安全工程有限公司 | 金属检测机_金属分离器_检针验针机_食品药品金属检探测仪器-广东善安科技 | 除尘布袋_液体过滤袋_针刺毡滤料-杭州辉龙过滤技术有限公司 | 方源木业官网-四川木门-全国木门专业品牌 | 杜康白酒加盟_杜康酒代理_杜康酒招商加盟官网_杜康酒厂加盟总代理—杜康酒神全国运营中心 | 浙江宝泉阀门有限公司| 污水/卧式/潜水/钻井/矿用/大型/小型/泥浆泵,价格,参数,型号,厂家 - 安平县鼎千泵业制造厂 | 重庆中专|职高|技校招生-重庆中专招生网 | 聚氨酯复合板保温板厂家_廊坊华宇创新科技有限公司 | 防伪溯源|防窜货|微信二维码营销|兆信_行业内领先的防伪防窜货数字化营销解决方案供应商 | 安徽控制器-合肥船用空调控制器-合肥家电控制器-合肥迅驰电子厂 安徽净化板_合肥岩棉板厂家_玻镁板厂家_安徽科艺美洁净科技有限公司 | 水稻烘干机,小麦烘干机,大豆烘干机,玉米烘干机,粮食烘干机_巩义市锦华粮食烘干机械制造有限公司 水环真空泵厂家,2bv真空泵,2be真空泵-淄博真空设备厂 | 艺术涂料_进口艺术涂料_艺术涂料加盟_艺术涂料十大品牌 -英国蒙太奇艺术涂料 | ICP备案查询_APP备案查询_小程序备案查询 - 备案巴巴 | 不锈钢散热器,冷却翅片管散热器厂家-无锡市烨晟化工装备科技有限公司 | 中原网视台| 浙江栓钉_焊钉_剪力钉厂家批发_杭州八建五金制造有限公司 | 缠绕机|缠绕膜包装机|缠绕包装机-上海晏陵智能设备有限公司 | 昆山新莱洁净应用材料股份有限公司-卫生级蝶阀,无菌取样阀,不锈钢隔膜阀,换向阀,离心泵 | 化妆品加工厂-化妆品加工-化妆品代加工-面膜加工-广东欧泉生化科技有限公司 | WF2户外三防照明配电箱-BXD8050防爆防腐配电箱-浙江沃川防爆电气有限公司 | RTO换向阀_VOC高温阀门_加热炉切断阀_双偏心软密封蝶阀_煤气蝶阀_提升阀-湖北霍科德阀门有限公司 | 进口试验机价格-进口生物材料试验机-西安卡夫曼测控技术有限公司 | 【同风运车官网】一站式汽车托运服务平台,验车满意再付款 | 不锈钢列管式冷凝器,换热器厂家-无锡飞尔诺环境工程有限公司 | 精密机械零件加工_CNC加工_精密加工_数控车床加工_精密机械加工_机械零部件加工厂 | 【星耀裂变】_企微SCRM_任务宝_视频号分销裂变_企业微信裂变增长_私域流量_裂变营销 | 高速龙门架厂家_监控杆_多功能灯杆_信号灯杆_锂电池太阳能路灯-鑫世源照明 | 大数据营销公司_舆情监测软件_上海SEO公司-文军营销官网 | 冲击式破碎机-冲击式制砂机-移动碎石机厂家_青州市富康机械有限公司 | 工控机-工业平板电脑-研华工控机-研越无风扇嵌入式box工控机 | 水上浮桥-游艇码头-浮动码头-游船码头-码瑞纳游艇码头工程 | 净化车间装修_合肥厂房无尘室设计_合肥工厂洁净工程装修公司-安徽盛世和居装饰 | 金联宇电缆|广东金联宇电缆厂家_广东金联宇电缆实业有限公司 | 找果网 | 苹果手机找回方法,苹果iPhone手机丢了找回,认准找果网! |