首页
/
每日頭條
/
科技
/
sql server 2012數據庫教程第3版
sql server 2012數據庫教程第3版
更新时间:2026-05-31 02:53:13

朋友們,SQL Server數據庫在國内廣泛應用,目前應該還有不少基于SQL Server 2000的應用,如果您還在用SQL Server 2000,筆者建議您升級到SQL Server 2008或更新版本。筆者結合自身應用談談具體體會。

SQLServer2000已經落伍了

筆者之前的開發的系統,有些是基于SQL Server 2000的,随着操作系統和服務器的升級,逐漸發現SQL Server 2000連安裝都是問題。剛開始我建議客戶安裝Windows Server 2003,因為方便安裝SQL Server 2000。但客戶總會問:我買這麼好的服務器,為何要安裝如此過時的操作系統呢?

sql server 2012數據庫教程第3版(數據庫大師成長日記)1

是啊,這是沒有道理的。時代變了、人的頭腦和思維也要跟着改變。所以逐漸的,客戶出現了多個SQL Server版本并存,有2000的、有2008的、還有2016的,可能是筆者前期對數據庫的升級采取了一種消極态度,後來就出現了很多後遺症,比如備份的還原就經常出岔子,更不要說SQL語法的支持了。

後來筆者痛下決心,統一升級到SQLServer 2016,雖然遭遇了不少波折,但總算統一了,維護起來也更方便了。

其實從SQLServer 2000升級到2016,要解決的不僅是版本統一、維護方便的問題,相對于2000版本,新版SQL Server在功能上,也确實解決了不少筆者曾經頭疼的問題。這裡簡單列舉幾點,希望對您有所幫助:

新版SQLServer支持的數據類型更豐富

以簡單的varchar和nvarchar為例,在2000版本中,varchar最多支持8000個字符,nvarchar最多支持4000個字符。在普通應用中當然不是事兒,但如果您傳遞的字符數超過了怎麼辦呢?

筆者就曾經遇到過,在ERP系統中保存單據時,為了保持事務的一緻性,我将SQL語句打包在一起,作為varchar參數傳遞到存儲過程解析後逐條使用exec執行。後因長度問題筆者就改用了text類型傳遞,寫的解析腳本非常複雜。在新版中這根本不是事兒,因為有varchar(max)、nvarchar(max)。

當然,最好的方法并非varchar(max),表值參數Json會更好。表值參數直接傳遞内存表到存儲過程中、Json類型可以将單據的數據轉換為Json直接通過SQL語句查詢,這樣連解析的過程都免了。

新版SQLServer支持的SQL語法更豐富

sql server 2012數據庫教程第3版(數據庫大師成長日記)2

比如我們處理數據時,可能會碰到存在則使用update更新、不存在則使用insert插入的方式,2000中筆者一般這樣實現:

if exists(select * from 表 where 條件) begin update 表 end else begin insert into 表 end

在新版的SQLServer中,提供了Merge語句:

MERGE 目标表 USING 源表 ON 匹配條件 WHEN MATCHED THEN 語句 WHEN NOT MATCHED THEN 語句;

還有比如定義變量并賦初始值問題,在2000中是無法定義時直接賦值的,看下面的對比。

2000寫法:

declare @myname nvarchar(20) set @myname='網雲技術'

新版寫法:

declare @myname nvarchar(20)='網雲技術'

還有比如我們執行插入語句時,新版可以一條插入語句同時插入多條數據

2000寫法:

insert into T(FID, Name) values(1, '馬雲') insert into T(FID, Name) values(2, '馬化騰') insert into T(FID, Name) values(3, '劉強東')

新版寫法:

insert into T(FID, FName) values(1, '馬雲'), (2,'馬化騰'), (3,'劉強東')

還有比如我們對一個整數變量加累加整數的時候,2000使用:

set @id=@id 1

在新版中,采用了類似C的語法:

set @id =1

等等等等,對于喜歡寫存儲過程的朋友來說,大量應用這些新語法,您寫起來的感覺就更爽了。

sql server 2012數據庫教程第3版(數據庫大師成長日記)3

當然,2000的數據庫想要直接升級到2016是很困難的,等下次再說吧。

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
2023汽車工程與技術專業學什麼課程 就業前景及方向
2023汽車工程與技術專業學什麼課程 就業前景及方向
汽車工程與技術專業所學主要課程包括機械制圖、理論力學、工程力學、汽車機械基礎、電工與電子技術、車輛技術評估與檢測、汽車構造。基于全球化背景下現代汽車新技術在各國間的交融性和共通性,汽車工程與技術專業的學生出國深造相對比較容易,回國服務的空間也異常廣闊。2023汽車工程與技術專業課程有什麼汽車工程與技...
2026-05-31
文員辦公室整理收納的工具(查找辦公文件夾很繁瑣)
文員辦公室整理收納的工具(查找辦公文件夾很繁瑣)
  文件夾是一種常見的辦公用品,用它來收納、查閱文件非常方便。但很多文件夾的備注條是一次性使用,無法塗改。撕下來又少了标記備注的地方,真是讓人無語,随便貼個普通标簽又容易殘膠,讓原本可以重複使用的文件夾變得髒兮兮,有的甚至不能粘接,因為大部分文件夾是塑料糙面,要是标簽掉了,也增加了尋找相關内容的時間,給工作帶來麻煩。      為了文件夾更好的收納歸類,小編...
2026-05-31
荊門孩子不愛學習如何教育(孩子非要玩手機)
荊門孩子不愛學習如何教育(孩子非要玩手機)
  家長:老師您好,知道您很忙不該打擾您,可是我實在是沒辦法了,想讓你給我支個招,我該怎麼辦?孩子放假非要玩手機,不給玩就不寫作業,也不上傳老師要求的早起學習或運動的視頻,第一天說好的每天半個小時,做的還不錯玩夠了還給我,第二天就不是他了,不到一個小時,我說明天不讓他玩了,就耍脾氣,躺床上不動也不起,也不寫作業。和我們較勁,也和他談判,寫完作業允許玩手機,他...
2026-05-31
中國電信寬帶電視機頂盒如何直接跳過首頁進去頻道
中國電信寬帶電視機頂盒如何直接跳過首頁進去頻道
1、您隻需進入ITV機頂盒的首頁-我的-設置,設置開機進入模式,選擇由原來的系統默認“EPG”調試選...
2026-05-31
現在一般用什麼打車軟件(現在除了打車之外還能叫船了)
現在一般用什麼打車軟件(現在除了打車之外還能叫船了)
  九個頭條網訊 3月20日,Uber優步杭州官微稱将在3月推出“一鍵叫船”服務,“千年人工搖橹船,給杭州帶回西湖藍。”并表示将選出10位Uber杭州遊船大使,在服務推出當天免費乘船并贈送每人300元船費。      這是繼中國專車服務之後Uber的又一進軍領域:去年6月,Uber就在波士頓港口推出UberBOAT打船服務,當時使用的是小型快船,波士頓市民可...
2026-05-31
Copyright 2023-2026 - www.tftnews.com All Rights Reserved