日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

mysql修改数据库级别_设置数据库兼容级别的两种方法

發(fā)布時(shí)間:2025/3/12 数据库 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql修改数据库级别_设置数据库兼容级别的两种方法 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

兼容級(jí)別設(shè)置為 80 兼容級(jí)別設(shè)置為 90 影響的可能性

對(duì)于 FROM 子句中的鎖提示,WITH 關(guān)鍵字始終是可選的。

但在一些例外情況中,僅當(dāng)用 WITH 關(guān)鍵字指定表提示時(shí),FROM 子句中才支持這些提示。有關(guān)詳細(xì)信息,請(qǐng)參閱 FROM (Transact-SQL)。

支持在警告消息中使用外部聯(lián)接運(yùn)算符 *= 和 =*。

不支持使用這兩個(gè)運(yùn)算符;應(yīng)使用 OUTER JOIN 關(guān)鍵字。

在將 ORDER BY 列表中的列引用綁定到在 SELECT 列表中定義的列時(shí),將忽略列的多義性,有時(shí)還會(huì)忽略列前綴。這可以導(dǎo)致以意外順序返回結(jié)果集。

例如,包含有一個(gè)兩部分列 (.) 的 ORDER BY 子句可以用作對(duì) SELECT 列表中的列的引用,但會(huì)忽略表的別名。請(qǐng)考慮下面的查詢(xún)。

SELECT c1 = -c1 FROM t_table AS x ORDER BY x.c1

執(zhí)行時(shí),將忽略 ORDER BY 中的列前綴。排序操作對(duì)指定的源列 (x.c1) 不按預(yù)期方式執(zhí)行,而是對(duì)在查詢(xún)中定義的派生 c1 列執(zhí)行。此查詢(xún)的執(zhí)行計(jì)劃將顯示:首先計(jì)算派生列的值,然后對(duì)計(jì)算得到的值進(jìn)行排序。

如果存在列的多義性,則將引發(fā)錯(cuò)誤。在綁定到 SELECT 列表中所定義的列時(shí),不忽略在 ORDER BY 中指定的列前綴(如果有)。

請(qǐng)考慮下面的查詢(xún)。

SELECT c1 = -c1 FROM t_table AS x ORDER BY x.c1

執(zhí)行時(shí),不忽略 ORDER BY 子句中的列前綴。排序操作對(duì)指定的源列 (x.c1) 按預(yù)期方式執(zhí)行。此查詢(xún)的執(zhí)行計(jì)劃將顯示排序運(yùn)算符對(duì)從 t_table 返回的行排序,然后再對(duì)在 SELECT 列表中定義的派生列 c1 的值排序。

在 INSERT SELECT 中,如果 UNION 屬于不同的數(shù)據(jù)類(lèi)型,則每個(gè) UNION 分支都直接轉(zhuǎn)換為 INSERT 目標(biāo)列的類(lèi)型。即使本身所使用的聯(lián)合可能會(huì)因不兼容的類(lèi)型轉(zhuǎn)換而失敗,INSERT SELECT 也會(huì)使 UNION 成功執(zhí)行,因?yàn)?UNION 的結(jié)果類(lèi)型的分支從不進(jìn)行轉(zhuǎn)換。

UNION 的結(jié)果類(lèi)型是獨(dú)立于 INSERT SELECT 而派生的。UNION 的每一分支都轉(zhuǎn)換為 UNION 的結(jié)果類(lèi)型,然后轉(zhuǎn)換為 INSERT 的目標(biāo)列類(lèi)型。如果 UNION 中有不兼容類(lèi)型,則第一個(gè)轉(zhuǎn)換可能會(huì)導(dǎo)致錯(cuò)誤。若要以兼容級(jí)別 90 運(yùn)行,則必須修復(fù)在 INSERT SELECT 中使用的所有不兼容類(lèi)型的聯(lián)合。

當(dāng)視圖或被引用視圖使用 TOP 子句時(shí),指定了 WITH CHECK OPTION 子句的視圖中無(wú)法正確支持通過(guò)視圖進(jìn)行插入和更新操作。

當(dāng)視圖或被引用視圖使用 TOP 子句時(shí),使用 WITH CHECK OPTION 的視圖中不支持通過(guò)視圖進(jìn)行插入和更新操作。

可變長(zhǎng)度列和固定長(zhǎng)度列的 UNION 將生成一個(gè)固定長(zhǎng)度列。

可變長(zhǎng)度列和固定長(zhǎng)度列的 UNION 將生成一個(gè)可變長(zhǎng)度列。

允許在觸發(fā)器中使用 SET XACT_ABORT OFF。

不允許在觸發(fā)器中使用 SET XACT_ABORT OFF。

允許在視圖中使用(并忽略)FOR BROWSE 子句。

不允許在視圖中使用 FOR BROWSE 子句。

ANSI_WARNINGS 不控制域錯(cuò)誤。如果 ANSI_WARNINGS 設(shè)置為 OFF 并且 ARITHABORT 沒(méi)有更改,則遵守 ARITHABORT 設(shè)置。

域錯(cuò)誤由 ANSI_WARNINGS 控制,并且是嚴(yán)重級(jí)別為 16 的錯(cuò)誤。如果 ANSI_WARNINGS 或 ARITHABORT 為 ON,則將引發(fā)錯(cuò)誤,而不是返回 NULL 值。此更改可能會(huì)破壞依賴(lài)于設(shè)置為 OFF 的 ARITHABORT 的用戶(hù)腳本。

如果對(duì)遠(yuǎn)程數(shù)據(jù)源(OpenRowset 或 OpenQuery)所執(zhí)行的直接傳遞查詢(xún)生成名稱(chēng)重復(fù)的列,則除非在該查詢(xún)中顯式命名了這些列,否則將忽略重復(fù)的列名。

如果對(duì)遠(yuǎn)程數(shù)據(jù)源(OpenRowset 或 OpenQuery)所執(zhí)行的直接傳遞查詢(xún)生成列名重復(fù)的列,將引發(fā)錯(cuò)誤。

大小大于 8000 的字符串常量和 varbinary 常量被視為 text、ntext 或 image。

大小大于 8000 的字符串常量和 varbinary 常量被視為 varchar(max) 類(lèi)型(或分別被視為 nvarchar(max) 和 varbinary(max))。如果 SELECT 列表包含此類(lèi)表達(dá)式,則這樣可以更改使用 SELECT … INTO 創(chuàng)建的表的數(shù)據(jù)類(lèi)型。

通過(guò)將類(lèi)型層次結(jié)構(gòu)中優(yōu)先級(jí)較低的比較數(shù)轉(zhuǎn)換為優(yōu)先級(jí)較高的類(lèi)型,從而在各數(shù)值類(lèi)型(smallint、tinyint、int、bigint、numeric、decimal、smallmoney、money)之間進(jìn)行比較。

數(shù)值類(lèi)型值不經(jīng)轉(zhuǎn)換便進(jìn)行比較。這有助于提高性能。但這可能會(huì)導(dǎo)致行為發(fā)生某些更改,尤其是在轉(zhuǎn)換導(dǎo)致溢出異常的情況下。

使用字符串參數(shù)的內(nèi)置元數(shù)據(jù)函數(shù)在其輸入長(zhǎng)度大于 4000 個(gè)字符的情況下,將截?cái)嘣撦斎搿?/p>

如果截?cái)鄬?dǎo)致丟失非空格字符,則內(nèi)置元數(shù)據(jù)函數(shù)會(huì)引發(fā)錯(cuò)誤。

未加引號(hào)的標(biāo)識(shí)符中被禁用的字符集保持不變。

Transact-SQL 分析器支持 Unicode 3.2 標(biāo)準(zhǔn),該標(biāo)準(zhǔn)更改了目前禁止在未分隔標(biāo)識(shí)符中使用的一些國(guó)際字符的字符分類(lèi)。

在出現(xiàn)浮點(diǎn)域錯(cuò)誤(即 log() 函數(shù)的參數(shù)為負(fù))時(shí),SET ANSI_WARNINGS ON 不覆蓋 SET ARITHABORT OFF 的設(shè)置。如果 ANSI_WARNINGS 為 ON 但 ARITHABORT 為 OFF,則浮點(diǎn)域錯(cuò)誤不會(huì)導(dǎo)致查詢(xún)終止。

SET ANSI_WARNINGS ON 完全覆蓋 ARITHABORT OFF 設(shè)置。在這種情況下,浮點(diǎn)域錯(cuò)誤將導(dǎo)致查詢(xún)終止。

允許在 ORDER BY 子句中使用(并忽略)非整數(shù)常量。

不允許在 ORDER BY 子句使用非整數(shù)常量。

允許使用空的 SET 語(yǔ)句(未指定 SET 選項(xiàng))。

不允許使用空的 SET 子句。

沒(méi)有為派生表所生成的列正確派生 IDENTITY 屬性。

為派生表所生成的列正確派生了 IDENTITY 屬性。

對(duì)浮點(diǎn)數(shù)據(jù)類(lèi)型執(zhí)行運(yùn)算的算術(shù)運(yùn)算符的可為 Null 性屬性始終可以為 Null。

在輸入不可為 Null 并且 ANSI_WARNINGS 為 ON 的情況下,對(duì)浮點(diǎn)數(shù)據(jù)類(lèi)型執(zhí)行運(yùn)算的算術(shù)運(yùn)算符的可為 Null 性屬性將更改為不可為 Null。

在使用 UNION 組合的 INSERT ..SELECT 語(yǔ)句中,由各個(gè)結(jié)果集生成的類(lèi)型都將轉(zhuǎn)換為目標(biāo)結(jié)果類(lèi)型。

在使用 UNION 組合的 INSERT ..SELECT 語(yǔ)句中,確定各分支的主要類(lèi)型,并在將結(jié)果轉(zhuǎn)換為目標(biāo)表類(lèi)型之前將其轉(zhuǎn)換為該類(lèi)型。

在 SELECT ..FOR XML 語(yǔ)句中,始終實(shí)體化 hex(27)(' 字符)和 hex(22)(" 字符),即使在不需要的情況下也是如此。

FOR XML 只在需要時(shí)才實(shí)體化 hex(27) 和 hex(22)。在下列情況下不實(shí)體化這些字符:

在屬性?xún)?nèi)容中,如果屬性值以 " 分隔,則不實(shí)體化 hex(27)(' 字符);如果屬性值以 ' 分隔,則不實(shí)體化 hex(22)(" 字符)。

在元素內(nèi)容中,從不實(shí)體化 hex(27) 和 hex(22)。

在 FOR XML 中,時(shí)間戳值映射為整數(shù)。

在 FOR XML 中,時(shí)間戳值映射為二進(jìn)制值。

有關(guān)詳細(xì)信息,請(qǐng)參閱 timestamp 數(shù)據(jù)類(lèi)型的 FOR XML 支持。

如果使用 timestamp 列,則為高;否則為低

在 FOR XML 和 OPENXML 中,名稱(chēng)中大范圍 Unicode 字符(3 字節(jié))使用 8 位表示。

例如,FOR XML 用 8 位表示 Unicode 碼位 U+10000 的方式如下:

在 FOR XML 和 OPENXML 中,名稱(chēng)中大范圍 Unicode 字符(3 字節(jié))使用 6 位表示。

例如,FOR XML 用 6 位表示 Unicode 碼位 U+10000 的方式如下:

在 FOR XML 中,使用 AUTO 模式的派生表映射被視為是透明的。

例如:

復(fù)制代碼

USE AdventureWorks

CREATE TABLE Test(id int);

INSERT INTO Test VALUES(1);

INSERT INTO Test VALUES(2);

SELECT * FROM (SELECT a.id AS a,

b.id AS b FROM Test a

JOIN Test b ON a.id=b.id)

Test FOR XML AUTO;

如果 AdventureWorks 的兼容級(jí)別設(shè)置為 80,則以上示例將生成:

在 FOR XML 中,使用 AUTO 模式的派生表映射被視為是不透明的。

如果 AdventureWorks 的兼容級(jí)別設(shè)置為 90,則以上示例將生成:

如果對(duì)視圖應(yīng)用 FOR XML AUTO 模式,則為高;否則為低

僅在日語(yǔ)和朝鮮語(yǔ)中,字符串到 money 的轉(zhuǎn)換才支持使用反斜杠字符 (/) 作為貨幣符號(hào)。

在所有語(yǔ)言中,所有字符串到 money 的轉(zhuǎn)換中都接受反斜杠字符 (/)。當(dāng) / 用作貨幣符號(hào)時(shí),ISNUMERIC 將返回 True。

對(duì)于 SQL Server 2005 之前的 SQL Server 版本上的數(shù)據(jù)庫(kù),這一新行為會(huì)拆分依賴(lài)于包含 / 的 ISNUMERIC 返回值并且所使用的語(yǔ)言既不是日語(yǔ)也不是朝鮮語(yǔ)的索引和計(jì)算列。

即使操作數(shù)不可為 Null 并且 ANSI_WARNINGS 或 ARITHABORT 設(shè)置為 ON,算術(shù)運(yùn)算符的結(jié)果也始終可為 Null。

在 ANSI_WARNINGS 或 ARITHABORT 設(shè)置為 ON 時(shí),如果兩個(gè)操作數(shù)都不可為 Null,則浮點(diǎn)算術(shù)運(yùn)算符的結(jié)果也不可為 Null。

在以下情況中,這種為空性的更改可能導(dǎo)致錯(cuò)誤:使用 bcp 從包含計(jì)算列(該計(jì)算列使用浮點(diǎn)算術(shù)運(yùn)算符)的 SQL Server 2000 表中大容量導(dǎo)出二進(jìn)制格式的數(shù)據(jù),然后使用 bcp 或 BULK INSERT 將這些數(shù)據(jù)大容量導(dǎo)入包含同一定義的 SQL Server 2005 表。

注意:

當(dāng)兩個(gè)選項(xiàng)均為 OFF 時(shí),數(shù)據(jù)庫(kù)引擎 將把結(jié)果標(biāo)記為可以為 Null。這與 SQL Server 2000 中相同。

對(duì)于以 nvarchar 作為參數(shù)的內(nèi)置函數(shù),如果所提供的值為 varchar,則該值將轉(zhuǎn)換為 nvarchar(4000)。在 SQL Server 2000 中,如果傳遞較大值,則該值將自行截?cái)唷?/p>

對(duì)于以 nvarchar 作為參數(shù)的內(nèi)置函數(shù),即使所提供的值為 varchar,該值仍將轉(zhuǎn)換為 nvarchar(4000)。但如果傳遞較大值,SQL Server 2008 將生成錯(cuò)誤。

若要以兼容級(jí)別 90 運(yùn)行,必須修復(fù)依賴(lài)于截?cái)嘈袨榈乃凶远x代碼。

固定長(zhǎng)度(char、binary 或 nchar)字符串與可變長(zhǎng)度(varchar、varbinary、nvarchar)字符串的聯(lián)合返回固定長(zhǎng)度的結(jié)果。

可變大小字符串和固定大小字符串的聯(lián)合返回可變大小字符串。

若要以兼容級(jí)別 90 運(yùn)行,那么對(duì)于任何地方(索引、查詢(xún)和計(jì)算列),只要它依賴(lài)與將可變大小類(lèi)型和固定大小類(lèi)型求并集得到的類(lèi)型,就必須修復(fù)。

包含字符 0xFFFF 的對(duì)象名是有效標(biāo)識(shí)符。

包含字符 0xFFFF 的對(duì)象名是無(wú)效標(biāo)識(shí)符,不能訪(fǎng)問(wèn)。

若要以兼容級(jí)別 90 運(yùn)行,必須重命名包含此字符的對(duì)象。

在 SELECT ISNUMERIC('') 中, 內(nèi)嵌入的逗號(hào)非常重要。

例如,以下 SELECT ISNUMERIC('121212,12') 查詢(xún)返回 0。這指示字符串 121212,12 不是數(shù)字。

在 SELECT ISNUMERIC('') 中, 內(nèi)嵌入的逗號(hào)可以忽略。

例如,以下 SELECT ISNUMERIC('121212,12') 查詢(xún)返回 1。這指示字符串 121212,12 是數(shù)字。

忽略了 Transact-SQL 語(yǔ)句中保留關(guān)鍵字后面的冒號(hào) (:)。

Transact-SQL 語(yǔ)句中保留關(guān)鍵字后面的冒號(hào) (:) 將導(dǎo)致語(yǔ)句失敗。

引用外部查詢(xún)中的列的子查詢(xún)中的 GROUP BY 子句成功。

按照 SQL 標(biāo)準(zhǔn),引用外部查詢(xún)中的列的子查詢(xún)中的 GROUP BY 子句返回錯(cuò)誤。

總結(jié)

以上是生活随笔為你收集整理的mysql修改数据库级别_设置数据库兼容级别的两种方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。