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

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

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

服務器之家 - 數(shù)據(jù)庫 - Sql Server - SQLServer 2008數(shù)據(jù)庫降級到2005低版本

SQLServer 2008數(shù)據(jù)庫降級到2005低版本

2020-05-12 15:50發(fā)糞塗牆 Sql Server

SQLServer 2008R2備份的數(shù)據(jù)庫還原到2008上面時報錯引發(fā)的思考,如何把SQLServer數(shù)據(jù)庫從高版本降級到低版本?本文為大家解答

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

SQLServer 2008數(shù)據(jù)庫降級到2005低版本

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

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

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

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

SQLServer 2008數(shù)據(jù)庫降級到2005低版本

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

SQLServer 2008數(shù)據(jù)庫降級到2005低版本

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

SQLServer 2008數(shù)據(jù)庫降級到2005低版本

步驟4:把腳本保存起來,然后在SQLServer2005中運行腳本。詳細步驟可以看:http://bbs.csdn.net/topics/390438560?page=1#post-394316973 中的13樓的回復,有截圖步驟5:通過【任務】→【導入數(shù)據(jù)】,把數(shù)據(jù)從2008導入到使用腳本創(chuàng)建的庫上如下圖,就完成了:

SQLServer 2008數(shù)據(jù)庫降級到2005低版本

方法二:使用系統(tǒng)自帶的存儲過程實現(xiàn):sp_dbcmptlevel ——將某些數(shù)據(jù)庫行為設置為與指定的 SQL Server 版本兼容
下面是其內(nèi)部實現(xiàn)代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
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

語法

?
1
2
sp_dbcmptlevel [ [ @dbname = ] name ]
 [ , [ @new_cmptlevel = ] version ]

參數(shù)

[ @dbname = ] name
要為其更改兼容級別的數(shù)據(jù)庫的名稱。數(shù)據(jù)庫名稱必須符合標識符的規(guī)則。name 的數(shù)據(jù)類型為 sysname,默認值為 NULL。
[ @new_cmptlevel = ] version
數(shù)據(jù)庫要與之兼容的 SQL Server 的版本。version 的數(shù)據(jù)類型為 tinyint,默認值為 NULL。該值必須為下列值之一:
80 = SQL Server 2000
90 = SQL Server 2005
100 = SQL Server 2008

返回代碼值
0(成功)或 1(失敗)

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

關于備份,可以看我的另外一篇文章。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

延伸 · 閱讀

精彩推薦
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
主站蜘蛛池模板: 一区二区三区精品视频 | 日韩免费视频 | 久久精品国产精品青草 | 黄色av大片在线观看 | 国产黄网| 日日干日日爽 | 国产精品毛片久久久久久久 | 曰韩中文字幕 | 91观看| 久久亚洲一区二区 | 国产片在线观看免费观看 | 国产综合av | 久久国产综合 | 一区二区电影 | 一级片 | 搡女人真爽免费午夜网站 | 夜夜av| 在线看黄色毛片 | 这里只有精品视频在线 | 成人精品综合 | 中文字幕亚洲区 | 欧美福利在线 | 伊人网站 | 日韩色综合 | 在线视频三级 | 青草青草久热精品视频在线观看 | 玖玖在线播放 | 亚洲欧美激情精品一区二区 | 涩涩涩久久久成人精品 | 亚洲人成网站b2k3cm | 日韩精品在线一区 | 夜夜操比| 欧美在线一区二区三区 | 亚洲91精品 | www.色.com | 日韩国产欧美视频 | 亚洲日本va中文字幕 | 高清av网站 | 91网站免费 | 国产精品成av人在线视午夜片 | 欧美激情视频一区二区三区在线播放 |