亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > SQL Server > 正文

SQLServer數據庫從高版本降級到低版本實例詳解

2024-08-31 01:04:27
字體:
來源:轉載
供稿:網友

SQLServer數據庫從高版本降級到低版本實例詳解

由于目前還廣泛使用著SQLServer2000,很多公司又想使用新的SQLServer,從而直接【分離/附加】或者【備份/還原】數據庫,在不同版本之間存放。往往就會遇到版本不兼容的問題。前幾天遇到了從我本機2008R2上備份的一個數據庫還原到2008上面時報錯:SQLServer,數據庫,高版本降級到低版本,SQLServer高版本降級到低版

從運行版本10.50.2500(2008R2是10.50)和10.00.1600(2008是10.00)中可以看出這個版本不兼容問題,大部分情況下,從低版本升級到高版本,只要不是跨度太大,如2000升級到2012,都不會怎么報錯。除非使用了一些新版本不兼容的特性如*=來實現left join的語句。但是就像上圖那樣,從高版本還原到低版本的時候,問題就出現了,而且幾乎一定會報錯。

下面給出幾個小建議,例子是從2008 降級到2005:

方法一:使用圖形化操作(GUI),打開SSMS(SQL Server Management Studio)

 

步驟1:右鍵你要降級的數據庫,按下圖選擇:

 

SQLServer,數據庫,高版本降級到低版本,SQLServer高版本降級到低版

步驟2:在對話框中選擇:

SQLServer,數據庫,高版本降級到低版本,SQLServer高版本降級到低版

   步驟3:在【高級】中選擇下圖:

 

SQLServer,數據庫,高版本降級到低版本,SQLServer高版本降級到低版

步驟4:把腳本保存起來,然后在SQLServer2005中運行腳本。

詳細步驟可以看:http://bbs.csdn.net/topics/390438560?page=1#post-394316973 中的13樓的回復,有截圖

步驟5:通過【任務】→【導入數據】,把數據從2008導入到使用腳本創建的庫上如下圖,就完成了:

 

SQLServer,數據庫,高版本降級到低版本,SQLServer高版本降級到低版

方法二:使用系統自帶的存儲過程實現:sp_dbcmptlevel ——將某些數據庫行為設置為與指定的 SQL Server 版本兼容

下面是其內部實現代碼:

SET QUOTED_IDENTIFIER ON  SET ANSI_NULLS ON  GO  create procedure sys.sp_dbcmptlevel      -- 1997/04/15   @dbname sysname = NULL,         -- database name to change   @new_cmptlevel tinyint = NULL OUTPUT  -- the new compatibility level to change to  as   set nocount  on     declare @exec_stmt nvarchar(max)   declare @returncode int   declare @comptlevel float(8)   declare @dbid int          -- dbid of the database   declare @dbsid varbinary(85)    -- id of the owner of the database   declare @orig_cmptlevel tinyint   -- original compatibility level   declare @input_cmptlevel tinyint  -- compatibility level passed in by user     ,@cmptlvl80 tinyint       -- compatibility to SQL Server Version 8.0     ,@cmptlvl90 tinyint       -- compatibility to SQL Server Version 9.0     ,@cmptlvl100 tinyint        -- compatibility to SQL Server Version 10.0   select @cmptlvl80 = 80,       @cmptlvl90 = 90,       @cmptlvl100 = 100     -- SP MUST BE CALLED AT ADHOC LEVEL --   if (@@nestlevel > 1)   begin     raiserror(15432,-1,-1,'sys.sp_dbcmptlevel')     return (1)   end     -- If no @dbname given, just list the valid compatibility level values.   if @dbname is null   begin     raiserror (15048, -1, -1, @cmptlvl80, @cmptlvl90, @cmptlvl100)     return (0)   end     -- Verify the database name and get info   select @dbid = dbid, @dbsid = sid ,@orig_cmptlevel = cmptlevel     from master.dbo.sysdatabases     where name = @dbname     -- If @dbname not found, say so and list the databases.   if @dbid is null   begin     raiserror(15010,-1,-1,@dbname)     print ' '     select name as 'Available databases:'       from master.dbo.sysdatabases     return (1)   end     -- Now save the input compatibility level and initialize the return clevel   -- to be the current clevel   select @input_cmptlevel = @new_cmptlevel   select @new_cmptlevel = @orig_cmptlevel     -- If no clevel was supplied, display and output current level.   if @input_cmptlevel is null   begin     raiserror(15054, -1, -1, @orig_cmptlevel)     return(0)   end     -- If invalid clevel given, print usage and return error code   -- 'usage: sp_dbcmptlevel [dbname [, compatibilitylevel]]'   if @input_cmptlevel not in (@cmptlvl80, @cmptlvl90, @cmptlvl100)   begin     raiserror(15416, -1, -1)     print ' '     raiserror (15048, -1, -1, @cmptlvl80, @cmptlvl90, @cmptlvl100)     return (1)   end     -- Only the SA or the dbo of @dbname can execute the update part   -- of this procedure sys.so check.   if (not (is_srvrolemember('sysadmin') = 1)) and suser_sid() <> @dbsid     -- ALSO ALLOW db_owner ONLY IF DB REQUESTED IS CURRENT DB     and (@dbid <> db_id() or is_member('db_owner') <> 1)   begin     raiserror(15418,-1,-1)     return (1)   end     -- If we're in a transaction, disallow this since it might make recovery impossible.   set implicit_transactions off   if @@trancount > 0   begin     raiserror(15002,-1,-1,'sys.sp_dbcmptlevel')     return (1)   end     set @exec_stmt = 'ALTER DATABASE ' + quotename(@dbname, '[') + ' SET COMPATIBILITY_LEVEL = ' + cast(@input_cmptlevel as nvarchar(128))     -- Note: database @dbname may not exist anymore   exec(@exec_stmt)     select @new_cmptlevel = @input_cmptlevel     return (0) -- sp_dbcmptlevel  GO 

語法

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

參數

[ @dbname = ] name 

要為其更改兼容級別的數據庫的名稱。數據庫名稱必須符合標識符的規則。name 的數據類型為 sysname,默認值為 NULL。

[ @new_cmptlevel = ] version

數據庫要與之兼容的 SQL Server 的版本。version 的數據類型為 tinyint,默認值為 NULL。該值必須為下列值之一:

80 = SQL Server 2000

90 = SQL Server 2005

100 = SQL Server 200

返回代碼值

 

0(成功)或 1(失?。?/p>

注意事項:

后續版本的 Microsoft SQL Server 將刪除該功能。請不要在新的開發工作中使用該功能,并盡快修改當前還在使用該功能的應用程序。 改為使用 ALTER DATABASE 兼容級別。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!


注:相關教程知識閱讀請移步到MSSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品久久久久久亚洲精品| 69**夜色精品国产69乱| 26uuu另类亚洲欧美日本一| 在线观看国产精品日韩av| 欧美激情一区二区三级高清视频| 91精品视频在线看| 亚洲成人激情图| 最近2019好看的中文字幕免费| 91欧美激情另类亚洲| 亚洲色图校园春色| 中文字幕欧美国内| 日韩精品中文字幕在线观看| 一区二区成人av| 亚洲第一偷拍网| 日韩在线激情视频| 在线视频日韩精品| 成人免费高清完整版在线观看| 国产亚洲精品久久| 亚洲国产精品女人久久久| 午夜精品在线观看| 欧美最顶级的aⅴ艳星| 国产精品美女呻吟| 欧美中在线观看| 欧美日韩性视频在线| 日本午夜在线亚洲.国产| 亚洲图片欧美午夜| 亚洲va男人天堂| 欧美极品少妇xxxxⅹ裸体艺术| 岛国av午夜精品| 欧美日韩国产成人高清视频| 国产精品h片在线播放| 久久久久久久国产精品视频| 久久视频在线直播| 国产精品揄拍500视频| 亚洲高清免费观看高清完整版| 国产成人亚洲综合| 久久精品99无色码中文字幕| 国产精品免费视频xxxx| 日韩av影视在线| 成人精品视频在线| 一区二区三区视频免费| 日韩成人激情在线| 91av成人在线| 日韩高清不卡av| 琪琪第一精品导航| 欧美视频一二三| 国产精品美女www| 亚洲成年人影院在线| 欧美精品激情blacked18| 国产亚洲一区二区精品| 欧美乱妇高清无乱码| 国产精品日韩在线播放| 欧洲成人在线观看| 日韩精品视频免费| 91久久国产精品| 国产精品视频999| 欧美在线亚洲在线| 日韩国产高清视频在线| 亚洲老头同性xxxxx| 在线播放国产精品| 在线播放精品一区二区三区| 欧美激情综合亚洲一二区| 日韩中文字幕亚洲| x99av成人免费| 久久精品久久久久久| www亚洲欧美| 激情成人在线视频| 欧美日韩另类字幕中文| 91精品国产自产在线老师啪| 国产91免费观看| 中文字幕av一区二区三区谷原希美| 日韩电影免费观看中文字幕| 成人国产精品av| 成人在线视频网站| 最新国产精品拍自在线播放| 日韩专区中文字幕| 亚洲天堂av在线播放| 亚洲毛茸茸少妇高潮呻吟| 日韩精品999| 午夜美女久久久久爽久久| 日韩成人激情影院| 亚洲激情视频在线播放| 91在线观看欧美日韩| 久久久av亚洲男天堂| 国产精品999| 国产91在线高潮白浆在线观看| 国产精品高潮呻吟久久av无限| 欧美又大粗又爽又黄大片视频| 美女扒开尿口让男人操亚洲视频网站| 日韩精品欧美国产精品忘忧草| 久久人人看视频| 精品国产一区二区三区四区在线观看| 日本高清视频一区| 中文字幕欧美国内| 亚洲精品99久久久久| 九九热这里只有精品免费看| 欧美日韩中文在线观看| 在线播放日韩专区| 91国内精品久久| 成人乱人伦精品视频在线观看| 日韩精品在线免费观看视频| 欧美极品少妇全裸体| 久久成人免费视频| 国产精品久久久久久久一区探花| 在线看片第一页欧美| 7m精品福利视频导航| 亚洲人高潮女人毛茸茸| 欧美精品videos性欧美| 欧美极品美女电影一区| 午夜免费久久久久| 4k岛国日韩精品**专区| 在线视频一区二区| 亚洲人成亚洲人成在线观看| 97碰碰碰免费色视频| 国产精品男人的天堂| 最近2019免费中文字幕视频三| 国产91精品久| 亚洲性夜色噜噜噜7777| 亚洲美女精品成人在线视频| 亚洲美女免费精品视频在线观看| 日韩美女在线观看| 91精品国产91久久久久久| 国产精品视频精品| 国产精品免费小视频| 亚洲欧美成人一区二区在线电影| 亚洲伦理中文字幕| 夜色77av精品影院| 91国产在线精品| 色哟哟亚洲精品一区二区| 91网站免费观看| 中文字幕精品网| 亚洲综合在线做性| 精品国产一区二区三区久久久狼| 青青草成人在线| 国产成人亚洲综合91精品| 久久久久国产精品免费网站| 久久九九全国免费精品观看| 欧美激情女人20p| 久久99青青精品免费观看| 日产日韩在线亚洲欧美| 亚洲国产成人91精品| 成人有码在线播放| 欧美日韩国产激情| 亚洲人午夜精品免费| 777精品视频| 91在线|亚洲| 国产精品高潮呻吟久久av黑人| 久久精品成人欧美大片古装| 91精品国产九九九久久久亚洲| 日韩av影片在线观看| 亚洲自拍欧美另类| 国产精品一区二区女厕厕| 欧美大奶子在线| 国产免费亚洲高清| 国产成人+综合亚洲+天堂| 国产亚洲一区二区在线| 亚洲天堂网站在线观看视频| 国产日韩欧美在线| 欧美在线免费视频| 国产在线观看精品| 国产69精品99久久久久久宅男| 亚洲第一国产精品| 精品小视频在线| 97婷婷大伊香蕉精品视频|