国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數(shù)據(jù)庫技術(shù)|

服務(wù)器之家 - 數(shù)據(jù)庫 - 數(shù)據(jù)庫技術(shù) - Access數(shù)據(jù)庫升級為SQL數(shù)據(jù)庫的注意事項和方法

Access數(shù)據(jù)庫升級為SQL數(shù)據(jù)庫的注意事項和方法

2021-08-29 22:01數(shù)據(jù)庫技術(shù)網(wǎng) 數(shù)據(jù)庫技術(shù)

很多Access和SQL Server開發(fā)人員都經(jīng)常面臨著將一個Access數(shù)據(jù)庫升級到SQL Server數(shù)據(jù)庫的問題。由于存在現(xiàn)有的Access升級向?qū)В@一轉(zhuǎn)變的過程就會變得相當簡單,尤其是當你建立一個與SQL Server數(shù)據(jù)相聯(lián)系的ADP的時候。然而,向?qū)Р⒉?

很多Access和SQL Server開發(fā)人員都經(jīng)常面臨著將一個Access數(shù)據(jù)庫升級到SQL Server數(shù)據(jù)庫的問題。由于存在現(xiàn)有的Access升級向?qū)В@一轉(zhuǎn)變的過程就會變得相當簡單,尤其是當你建立一個與SQL Server數(shù)據(jù)相聯(lián)系的ADP的時候。然而,向?qū)Р⒉皇鞘赖模枰鉀Q的問題還是大有存在。

首先,有些對象并不是簡單的升級,所以這時你不得不人為地處理。第二,很多Access特性──比如一些查詢類型,對象,以及特定的數(shù)據(jù)類型在你沒有做好升級之前的準備的情況下就會導致錯誤的產(chǎn)生。現(xiàn)在,讓我們討論一下在數(shù)據(jù)庫升級過程中可能面臨的問題,我將提供能夠解決問題的一些通用的指導方法,最后,你必須花一定的時間和精力將這些知識應(yīng)用到開發(fā)之中。

哪些不能夠升級?

在處理實際的問題之前,讓我們看看不能隨意升級的對象,它們包括以下:

交叉表查詢

包含SQL DISTINCTROW關(guān)鍵字的任何查詢

所有的隱藏對象

作為參數(shù)的表格數(shù)據(jù)的查詢(這些表格可以升級,但它們卻不能正確的運行)

Pass-Through查詢

SQL數(shù)據(jù)定義語言查詢(比如Create TABLE, Alter TABLE, 以及Drop語句)

這些Access對象需要特定的處理。具體的,你將建立一個可比較的SQL Server對象,除此之外,SQL Server不支持Jet安全特性,所以你必須使用Windows認證和/或SQL Server安全機制。

包括的問題點

在數(shù)據(jù)庫的升級之前,如果你已經(jīng)知道哪些地方將可能導致錯誤并知道如何處理產(chǎn)生的錯誤,數(shù)據(jù)庫升級過程中導致的錯誤的可能性將大大地減少。我能夠提供的數(shù)據(jù)庫升級的最好的建議是在開發(fā)之前做好最完整的計劃。現(xiàn)在,我將列舉數(shù)據(jù)庫升級過程中可能會導致產(chǎn)生的問題──如果你沒有做好計劃之前的準備。

不支持的日期

關(guān)于日期,在Access和SQL Server之間都存在很大的差別。Access支持很大范圍的日期,從100年1月1日到9999年12月31日。相反,SQL Server支持的日期從1753年1月1日到9999年12月31日。數(shù)據(jù)庫的升級向?qū)o法升級包含SQL Server不支持的日期的表格。這就意味著在升級之前你必須人工地處理這些日期。幸運的是,這一問題只影響少數(shù)的數(shù)據(jù)庫。

與表格控制相關(guān)的查詢

開發(fā)人員通常會使用表格控制的查詢來限制或詢問一個數(shù)據(jù)來源。一個表格可以提供將數(shù)據(jù)顯示在一個特定報告中的多種選擇。例如,SQL Select語句包含了用戶的輸入:

Select orders.RequiredDate, orders.ShippedDate, orders.Freight,

orders.ShipName, orders.ShipAddress, orders.OrderDate

FROM orders

Where

orders.OrderDate Between [Forms]![DateFilter]![DateFrom] And [Forms]![DateFilter]![DateTo]));

為了限定報告中的數(shù)據(jù),用戶可以輸入一個開始和結(jié)束的日期到列表(DateFrom 和DateTo)。其他的代碼可以打開并顯示滿足用戶輸入的兩個日期之間的記錄。

因為這種查詢方式被Jet處理,表格中產(chǎn)生的問題可以很快被解決。然而,當數(shù)據(jù)庫升級時,SQL Server不會涉及到表格控制,結(jié)果通常為查詢失敗。為了修正這一查詢方式,開發(fā)人員必須更改表格。我建議你使用輸入?yún)?shù)屬性,并將數(shù)值傳遞到SQL Server存儲程序。

交叉表查詢

SQL Server不支持Jet TRANSFORM語句──這一語句可以使一個交叉表查詢成為可能。例如,數(shù)據(jù)庫升級向?qū)еС忠韵虏樵兎绞剑?/p>

TRANSFORM Sum(CCur([Order Details].UnitPrice*[Quantity]*(1-[Discount])/100)*100)

AS ProductAmount

Select Products.ProductName, orders.CustomerID, Year([OrderDate]) AS orderYear

FROM Products INNER JOIN (Orders INNER JOIN [Order Details]

ON orders.OrderID = [Order Details].OrderID) ON Products.ProductID =

[Order Details].ProductID

Where orders.OrderDate Between #1/1/1997# And #12/31/1997#

GROUP BY Products.ProductName, orders.CustomerID, Year([OrderDate])

PIVOT "Qtr " & DatePart("q",[OrderDate],1,0) In ("Qtr 1","Qtr 2","Qtr 3","Qtr 4")

還好,你無需在SQL Server中使用Transact-SQL (T-SQL) CASE關(guān)鍵詞重新編寫一個Access的交叉表查詢。下面的Select語句描述了使用T-SQL方式重新建立一個交叉表查詢的語法:

Select Customers.CustomerID, Customers.CustomerName

SUM (Case When orders.Orderdate BETWEEN '01-Jan-1990' AND '31-Dec-1996'

Then [UnitPrice]*[Quantity] Else 0 End) as 1997)

FROM Customers INNER JOIN orders

ON CustomerID=Orders.CustomerID

隱藏對象

所有的隱藏對象在數(shù)據(jù)庫升級過程中都被忽略。對此,你最好的處理方法是使用程序?qū)ο蟮腉etHiddenAttribute屬性檢查對象。例如,以下代碼使用這一方法決定對象是否被隱藏。

Dim IsHidden As Boolean

If Application.GetHiddenAttribute(objtype, objname) Then

IsHidden = True

End If

如果特定的對象被隱藏,IsHidden布爾變量將被為True。

包含索引的表格

數(shù)據(jù)庫升級向?qū)Р恢С譀]有索引或其他限制的表格。升級向?qū)Э梢陨壱粋€無索引的表格,但其轉(zhuǎn)換之后只能成為一個只讀的表格。幸運的是,解決這一問題很簡單:添加一個索引到每一個沒有索引的表格。一旦你已經(jīng)完成升級數(shù)據(jù)庫,請記住將添加的索引刪除。

數(shù)據(jù)庫升級操作步驟

一旦你已經(jīng)做好一切準備,并確定操作可以開始。數(shù)據(jù)庫升級向?qū)Э梢詾槟闾峁┤N選擇:

輸出Access表格到SQL Server并鏈接到Access數(shù)據(jù)庫

使用Pass-Through查詢與SQL Server的后臺服務(wù)器的表格相互通訊

將整個Access數(shù)據(jù)庫移動到一個Access數(shù)據(jù)庫工程(其只與SQL Server聯(lián)系)

為了啟動數(shù)據(jù)庫升級向?qū)В葟墓ぞ卟藛螜谥羞x擇數(shù)據(jù)庫功能,然后從子菜單中選擇升級向?qū)АO驅(qū)У牡谝粋€面板提供兩種選擇:你可以建立一個新的SQL Server 數(shù)據(jù)庫來存放Access表格,如圖A所示,或者你可以在一個現(xiàn)成的SQL Server數(shù)據(jù)庫中添加表格。選擇一個現(xiàn)成的SQL Server數(shù)據(jù)庫將需要輸入一個數(shù)據(jù)服務(wù)名稱(DSN)。

圖A:

Access數(shù)據(jù)庫升級為SQL數(shù)據(jù)庫的注意事項和方法

選擇建立一個新的數(shù)據(jù)庫或者使用一個現(xiàn)成的數(shù)據(jù)庫

第二個面板要求獲得SQL Server范例的信息。除此之外,你必須認證安全機制(如果存在)和為新的數(shù)據(jù)庫提供一個缺省的名稱,如圖B所示。

圖B

Access數(shù)據(jù)庫升級為SQL數(shù)據(jù)庫的注意事項和方法

為一個新的數(shù)據(jù)庫命名

在這點上,你可以將需要的表格復制到SQL Server,你也可以指出完成的部分將成為一個完整的ADP或者一個被鏈接的表格,如圖C所示。

圖 C

Access數(shù)據(jù)庫升級為SQL數(shù)據(jù)庫的注意事項和方法

指明一個ADP或者一個被鏈接的表格

避開麻煩

每一個開發(fā)人員都有不同的數(shù)據(jù)庫升級操作的經(jīng)驗,所以無法保證第一次操作就能夠達到成功。然而,如果你遵循本文中提供的有關(guān)規(guī)則,你應(yīng)該遇到更少的錯誤,即使碰到,你也可以很容易地修正錯誤,并繼續(xù)操作。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 午夜精品久久久久久久久久久久久 | 国产在线观看免费 | 韩日一区二区三区 | 国产精品综合 | 久久综合久色欧美综合狠狠 | 国产日韩欧美一区二区 | 亚洲高清日本 | 成人免费一区二区三区视频网站 | a天堂在线 | 亚洲日韩中文字幕一区 | 在线电影一区 | 国产精品永久免费视频 | 亚洲综合精品 | 欧美日韩第一页 | 午夜影院在线 | 国产一区自拍视频 | 69中文字幕 | 国产精品欧美一区二区 | 欧美人交a欧美精品 | 久久久久久91香蕉国产 | 日韩在线观看视频一区二区三区 | 91av视频在线观看 | 亚洲av毛片 | 亚洲精品成人 | 最好的2019中文大全在线观看 | 亚洲青青草 | 中文字幕 亚洲视频 | 成人性生交大片免费看网站 | 婷婷色综合 | 91免费视频观看 | 一区二区免费看 | 日韩一区二区三区在线 | 欧美一区二区三区 | 黄视频在线| 中文字幕精品一区二区三区精品 | 亚洲欧美精品一区 | 国产精品尤物 | 国产中文 | 久久黄网站| 精品久久久久久久久久 | 波多野结衣一二三 |