精品国产亚洲一区二区三区,男女作爱在线观看免费网站,欧美的又大又长做禁片A片,97国产精品人妻无码久久久

  • 相關(guān)軟件
    >sp_dbcmptlevel 創(chuàng)建者:webmaster 更新時間:2006-02-16 15:51

    將某些數(shù)據(jù)庫行為設(shè)置為與指定的 Microsoft® SQL Server™ 的早期版本兼容。



    語法


    sp_dbcmptlevel [ [ @dbname = ] name ]

        [ , [ @new_cmptlevel = ] version ]



    參數(shù)


    [@name =] name



    數(shù)據(jù)庫的名稱,將對此數(shù)據(jù)庫的兼容級別進(jìn)行更改。數(shù)據(jù)庫的名稱必須遵循標(biāo)識符的規(guī)則。name 的數(shù)據(jù)類型為 sysname,默認(rèn)值為 NULL。



    [@new_cmptlevel =] version



    數(shù)據(jù)庫要兼容的 SQL Server 版本。version 的數(shù)據(jù)類型為 tinyint,默認(rèn)值為 NULL。該值必須為 80、70、65 或 60。



    說明  70 和 80 兩個級別間的唯一區(qū)別是,級別 70 不支持 SQL Server 2000 中引入的一些保留關(guān)鍵字。



    返回代碼值


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

    結(jié)果集


    如果沒有指定參數(shù)或沒有指定 name 參數(shù),sp_dbcmptlevel 將返回下面的消息:



    Valid values of database compatibility level are 60, 65, 70, or 80.


    如果指定了 version 而沒有指定 name,SQL Server 將顯示一條有關(guān)該數(shù)據(jù)庫的兼容性設(shè)置的消息。



    注釋


    在 SQL Server 2000 中,master 數(shù)據(jù)庫的兼容級別為 80,此級別不能改變。



    對于安裝 SQL Server 2000 的所有實例,所有數(shù)據(jù)庫的默認(rèn)級別為 80。對于從 SQL Server 7.0 升級到 SQL Server 2000,所有數(shù)據(jù)庫的默認(rèn)級別為 80。對于從 SQL Server 6.5 和 SQL Server 6.0 升級到 SQL Server 2000,保持現(xiàn)有默認(rèn)兼容級別。



    sp_dbcmptlevel 提供臨時遷移幫助。由 sp_dbcmptlevel 的兼容級別設(shè)置控制的 SQL Server 7.0 版或 SQL Server 2000 行為中的不同如果影響了現(xiàn)有 SQL Server 6.x 版應(yīng)用程序,請使用此過程設(shè)置早期版本行為,直到能夠用 SQL Server 2000 兼容級別將該應(yīng)用程序轉(zhuǎn)變?yōu)檎_\行為止。sp_dbcmptlevel 不能還復(fù)完全向后兼容。



    sp_dbcmptlevel 將影響指定數(shù)據(jù)庫的行為,但不會影響整個服務(wù)器。當(dāng)在 USE 語句中將數(shù)據(jù)庫作為當(dāng)前數(shù)據(jù)庫,或者當(dāng)數(shù)據(jù)庫作為登錄的默認(rèn)數(shù)據(jù)庫時,數(shù)據(jù)庫的兼容性設(shè)置將生效。當(dāng)執(zhí)行存儲過程時,將使用在其中定義過程的數(shù)據(jù)庫的當(dāng)前兼容性級別。當(dāng)此數(shù)據(jù)庫中的兼容性設(shè)置更改時,所有存儲過程將重新編譯。



    將兼容性級別設(shè)置為 65 或 60 將影響這些行為。有關(guān)向后兼容行為的更多信息,請參見 SQL Server 向后兼容性詳細(xì)信息

























































































    兼容性級別設(shè)置為

    60 或 65
    兼容級別設(shè)置為 70 或 80(默認(rèn)值)
    帶 GROUP BY 子句但不帶 ORDER BY 子句的 SELECT 語句的結(jié)果集,將由 GROUP BY 列排序。GROUP BY 子句本身沒有排序功能。必須顯式指定 ORDER BY 子句,SQL Server 才能對結(jié)果集進(jìn)行排序。有關(guān)更多信息,請參見 SELECT。
    UPDATE 語句的 SET 子句接受以表的別名作為前綴的列。在 UPDATE 語句的 SET 子句中,不接受表的別名。在 SET 子句中指定的表或視圖必須與指定的緊跟在 UPDATE 關(guān)鍵字后的表或視圖相匹配。有關(guān)更多信息,請參見UPDATE。
    在創(chuàng)建 bit 列時,如果在 CREATE TABLE 或 ALTER TABLE 中沒有顯式地指定 NULL 或 NOT NULL 選項,則 bit 列將按 NOT NULL 創(chuàng)建。如果沒有顯式地指定,則 bit 列的為空性由 SET ANSI_NULL_DFLT_ON 或 SET ANSI_NULL_DFLT_OFF 的會話設(shè)置決定,或者由數(shù)據(jù)庫設(shè)置 SET ANSI NULL DEFAULT 決定。有關(guān)更多信息,請參見SET
    ALTER COLUMN 子句無法在 ALTER TABLE 上使用。 ALTER COLUMN 子句可在 ALTER TABLE 上使用。有關(guān)更多信息,請參見 ALTER TABLE
    為表創(chuàng)建的觸發(fā)器將替換同一類型的任何現(xiàn)有觸發(fā)器 (INSERT、UPDATE、DELETE)??梢允褂?CREATE TRIGGER 的 WITH APPEND 選項創(chuàng)建同一類型的多個觸發(fā)器。 可以附加相同類型的觸發(fā)器。觸發(fā)器的名稱必須唯一。假定已經(jīng)使用了 WITH APPEND 選項。有關(guān)更多信息,請參見 CREATE TRIGGER。
    如果批處理或過程包含無效的對象名,則當(dāng)分析或編譯批處理時,將返回警告消息,并且在執(zhí)行批處理時,將返回錯誤信息。 當(dāng)分析或編譯批處理時,不會返回警告消息。當(dāng)執(zhí)行批處理時,將返回錯誤信息。有關(guān)延遲的名稱解析的更多信息,請參見CREATE PROCEDURE(級別 4)
    通過忽略表 Y 并將 SELECT 語句結(jié)果插入表 X,下面形式的查詢可以正確執(zhí)行。
    INSERT X
    SELECT select_list INTO Y

    當(dāng)執(zhí)行此查詢時,SQL Server 將返回語法錯誤。
    空字符串文字 (' ') 將作為一個空格解釋。空字符串文字 (' ') 將作為空字符串解釋。
    DATALENGTH('') 返回 1(將 '' 解釋為一個空格)。

    DATALENGTH(N'') 返回 2(將 N'' 解釋為一個 Unicode 空格)。

    當(dāng) m = 0 時,LEFT('123', m) 返回 NULL。



    當(dāng) m = 0 時,LEFT(N'123', m) 返回 NULL。

    LTRIM('     ') 返回NULL。

    LTRIM(N'     ') 返回 NULL。

    當(dāng) m = 0 時,REPLICATE('123', m) 返回 NULL。

    當(dāng) m = 0 時,REPLICATE(N'123', m) 返回 NULL。

    當(dāng) m = 0 時,RIGHT(N'123', m) 返回 NULL。

    當(dāng) m = 0 時,RIGHT('123', m) 返回 NULL。

    當(dāng) m 為負(fù)數(shù)時,RIGHT('123', m) 返回 NULL。

    當(dāng) m 為負(fù)數(shù)時,RIGHT(N'123', m) 返回 NULL。

    RTRIM('     ') 返回 NULL。

    RTRIM(N'     ') 返回 NULL。

    SPACE(0) 返回 NULL。

    當(dāng) m 小于字符串長度或者當(dāng) n = 0 時,SUBSTRING('123', m, n) 返回 NULL。

    當(dāng) m 大于字符串的長度或者當(dāng) n = 0 時,SUBSTRING(N'123', m, n) 返回 NULL。

    UPDATETEXT table.textcolumn textpointer > 0 NULL NULL 導(dǎo)致 NULL 值。
    DATALENGTH('') 返回 0。



    DATALENGTH(N'') 返回 0。



    當(dāng) m = 0 時,LEFT('123', m) 返回空字符串。

    當(dāng) m = 0 時,LEFT(N'123', m) 返回空字符串。

    LTRIM('     ') 返回空字符串。

    LTRIM(N'     ') 返回空字符串。

    當(dāng) m = 0 時,REPLICATE('123', m) 返回空字符串。

    當(dāng) m = 0 時,REPLICATE(N'123', m) 返回空字符串。

    當(dāng) m = 0 時,RIGHT('123', m) 返回空字符串。

    當(dāng) m = 0 時,RIGHT(N'123', m) 返回空字符串。



    當(dāng) m 是負(fù)數(shù)時,RIGHT('123', m) 返回空字符串。



    當(dāng) m 為負(fù)數(shù)時,RIGHT(N'123', m) 返回錯誤信息。

    RTRIM('     ') 返回空字符串。

    RTRIM(N'     ') 返回空字符串。

    SPACE(0) 返回空字符串。

    當(dāng) m 小于字符串的長度或者當(dāng) n = 0 時,SUBSTRING('123', m, n) 返回空字符串。

    當(dāng) m 大于字符串的長度或者當(dāng) n = 0 時,SUBSTRING(N'123', m, n) 返回空字符串。

    UPDATETEXT table.textcolumn textpointer > 0 NULL NULL 導(dǎo)致空文本。
    僅當(dāng)模式和表達(dá)式同時為空時,CHARINDEX 和 PATINDEX 函數(shù)才返回空。當(dāng)任何輸入?yún)?shù)為 NULL 時,CHARINDEX 和 PATINDEX 函數(shù)將返回 NULL。
    引用 inserted deleted 表中的 text image 列時,將顯示為 NULL。不允許引用 inserted deleted 表中的 text image 列。
    允許 UPDATETEXT 將 text 列初始化為 NULL。UPDATETEXT 將 text 列初始化為空字符串。WRITETEXT 將 text 列初始化為 NULL。
    如果 sp_dboption 的設(shè)置選項 concatenation of null yields null 處于關(guān)閉狀態(tài)(禁用),則當(dāng)串聯(lián)操作中的任何操作數(shù)為空時返回空字符串。如果 sp_dboption 的設(shè)置選項 concatenation of null yields null 處于打開狀態(tài)(啟用),則當(dāng)串聯(lián)操作中的任何操作數(shù)為空時返回 NULL。
    在 INSERT 語句中,允許在 VALUES 子句中使用可以返回標(biāo)量值的 SELECT。INSERT 語句不能在 VALUES 子句中將 SELECT 語句用作插入值之一。
    由 INSERT table EXEC procedure 語句引用的存儲過程中的 ROLLBACK 語句將導(dǎo)致 INSERT 回滾,但批處理繼續(xù)執(zhí)行由 INSERT...EXEC 子句引用的存儲過程中的 ROLLBACK 語句將導(dǎo)致整個事務(wù)回滾,并使批處理終止執(zhí)行。
    在觸發(fā)器中檢索 inserted deleted 表的 text image 列,將返回 text image 列的 NULL值。不允許在觸發(fā)器中檢索 inserted deleted 表的 text image 列,否則將出錯。



    兼容性級別對保留關(guān)鍵字也有影響。下表顯示在指定級別上為保留關(guān)鍵字而用在較低級別的對象名中仍有效的單詞。在較低兼容性級別上,與較高級別保留關(guān)鍵字對應(yīng)的語言功能將失效。
























    兼容性級別

    保留關(guān)鍵字
    80COLLATE、FUNCTION、OPENXML
    70BACKUP、CONTAINS、CONTAINSTABLE、DENY、FREETEXT、FREETEXTTABLE、PERCENT、RESTORE、ROWGUIDCOL、TOP
    65AUTHORIZATION、CASCADE、CROSS、DISTRIBUTED、ESCAPE、FULL、INNER、JOIN、LEFT、OUTER、PRIVILEGES、RESTRICT、RIGHT、SCHEMA、WORK



    無法在 master 數(shù)據(jù)庫中更改兼容性級別設(shè)置,但是可以在 model 數(shù)據(jù)庫中對此進(jìn)行更改,以使其在所有新建的數(shù)據(jù)庫中生效。無法在存儲過程內(nèi)部或 EXEC('string') 語法執(zhí)行的 Transact-SQL 字符串中更改兼容性級別。無法在 Transact-SQL 語句的批處理中更改兼容性級別。



    權(quán)限


    只有 DBO、sysadmin 固定服務(wù)器角色成員、db_owner 固定數(shù)據(jù)庫角色成員(如果即將改變兼容級別的數(shù)據(jù)庫是當(dāng)前數(shù)據(jù)庫)才能執(zhí)行此過程。



    示例


    此示例通過將 pubs 數(shù)據(jù)庫的兼容級別設(shè)置為 60 來創(chuàng)建名為 distributed 的過程,distributed 是 SQL Server 保留關(guān)鍵字。



    CREATE PROCEDURE distributed 
    AS
    PRINT 'This won't happen'

    EXEC sp_dbcmptlevel 'pubs', 60

    CREATE PROCEDURE distributed
    AS
    PRINT 'You are in a procedure that could not be defined'
    PRINT 'in a version of SQL Server 6.5 or later'
    PRINT 'without the compatibility setting.'

    EXEC distributed


    下面是結(jié)果集:



    Msg 156, Level 15, State 1
    Incorrect syntax near the keyword 'distributed'.
    DBCC execution completed. If DBCC printed error messages, see your System Administrator.
    You are in a procedure that could not be defined
    in a version of SQL Server 6.5 or greater
    without the compatibility setting.
    相關(guān)文章
    本頁查看次數(shù):