• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    如何由Sybase向SQL Server移植數據庫

    發布: 2008-8-19 17:33 | 作者: 網絡轉載 | 來源: chinaitlab.com | 查看: 45次 | 進入軟件測試論壇討論

    領測軟件測試網 最近參與了將一個Sybase數據庫移植到Microsoft SQL Server 2000上的項目,我在這一項目上獲得的經驗,將對Sybase數據庫管理員把Sybase數據庫移植到SQL Server 2000平臺上有一定的幫助。 

    盡管二者之間的一些差別是相當大的,例如Sybase數據庫管理系統中的存儲過程在SQL Server就不能被編譯,而其它差別則不太大。在完成這一轉換前,對腳本文件和存儲過程中編程邏輯的行為和結果進行測試是很有必要的。 

    在下面的部分中,我們將討論這二種數據庫系統之間的一些主要的不同點,在移植的規劃階段,我們必須仔細研究這些區別。 

    數據兼容模式 

    對SQL Server 2000和Sybase之間的一些兼容性差別的一個臨時性解決方案是改變SQL Server中的數據庫兼容性級別,使之與Sybase相符。為此,我們可以使用sp_dbcmptlevel存儲過程。 

    下面表中的語句和結果顯示出不同版本數據庫之間的差別: 

    注意: 

    1、當兼容性模式被設置為70時,下面的詞匯不能被用作對象名和標識符:BACKUP、DENY、PRECENT、RESTORE和TOP。 

    2、當兼容性模式被設置為65時,下面的詞匯不能被用作對象名和標識符:AUTHORIZATION、CASCASE、CROSS、DISTRIBUTED、ESCAPE、FULL、INNER、JOIN、LEFT、OUTER、PRIVILEGES、RESTRICT、RIGHT、SCHEMA和WORK。 

    下面是sp_dbcmptlevel的語法: 


      
      sp_dbcmptlevel [[@dbname=] name][,[@new_cmptlevel=]version]
      
     

    @dbname是用于檢查和改變兼容性水平的數據庫名字。 

    @new_cmptlevel決定數據庫被設置的兼容性水平(將它設置為70、65、60,缺省值為NULL)。 

    例如: 


      sp_dbcmptlevel pubs
      
     

    這一行代碼返回下面的結果: 


      
      The current compatibility level is 70.(當前的兼容性級別為70。)
      
     

    現在我們來看一下另外一個例子: 


      
      sp_dbcmptlevel pubs, 65
      
     

    它返回如下的結果: 


      DBCC execution completed. (DBCC執行結束。)
     
     

      
    如果DBCC打印出錯誤信息,則需要與系統管理員聯系。我們可以使用rerunsp_dbcmptlevel驗證pubs數據庫是否修改得正確: 


      
      sp_dbcmptlevel pubs
     
     

      
    它返回下面的結果: 


      The current compatibility level is 65(當前的兼容性級別為65。)
      
      除了上面的例子外,兼容性級別的差別還擴展到了保留字。Sybase和SQL Server都有許多不能被用作數據庫中對象名字的的保留字,二種產品的保留字相似,但并不完全相同。 

    由于能夠在Sybase中使用的對象可能不能在SQL Server中使用,這一問題使得由Sybase向SQL Server的移植憑添了許多困難。下面是在SQL Server中是保留字,而在Sybase中不是保留字的詞匯清單。 

    注意:名字為下列清單中詞匯的Sybase數據庫中的對象在移植到SQL Server數據庫時必須換為其它名字。 


      
      BACKUP COLUMN COMMITTED CONTAINS CONTAINSTABLE
      CROSS CURRENT_DATE CURRENT_TIME CURRENT_TIMESTAMP CURRENT_USER
      DENY DISTRIBUTED FILE FLOPPY FREETEXT
      FREETEXTTABLE FULL IDENTITYCOL INNER JOIN
     
     

      
    事務管理模式: 


      Sybase SQL Server
      
      Set chained [ on : off ] Set implicit_transactions [on : off ]
     
     

      
    在Sybase中使用下面的代碼判斷事務模式: 


      
      SELECT @@tranchained
      GO
     
     

      
    下面是可能返回的結果: 

    0 表明使用的是非鏈鎖式事務模式。 

    1 表明連接運行在鏈鎖模式下。 

    在SQL Server中使用下面的代碼判斷事務模式: 


      
      IF (@@options & 2) > 0
      PRINT on
      ELSE
      PRINT off
     

       
    下面是可能的返回結果: 


      
      0 off
      >0 on
     
     

      

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: server Server SERVER sql SQL Sql Sybase SYBASE 數據庫 移植

    21/212>

    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>