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

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

    指定幾種錯(cuò)誤情況下的 SQL-92 標(biāo)準(zhǔn)行為。



    語(yǔ)法


    SET ANSI_WARNINGS { ON | OFF }



    注釋


    SET ANSI_WARNINGS 影響以下情況:


    • 當(dāng)設(shè)置為 ON 時(shí),如果聚合函數(shù)(如 SUM、AVG、MAX、MIN、STDEV、STDEVP、VAR、VARP 或 COUNT)中出現(xiàn)空值,將生成警告信息。當(dāng)設(shè)置為 OFF 時(shí),不發(fā)出警告。



    • 當(dāng)設(shè)置為 ON 時(shí),被零除錯(cuò)誤和算術(shù)溢出錯(cuò)誤將導(dǎo)致回滾語(yǔ)句并生成錯(cuò)誤信息。當(dāng)設(shè)置為 OFF 時(shí),被零除錯(cuò)誤和算術(shù)溢出錯(cuò)誤將導(dǎo)致返回空值。如果在 character、Unicode 或 binary 列上嘗試執(zhí)行 INSERT 或 UPDATE 操作,而這些列中的新值長(zhǎng)度超出最大列大小,則被零除錯(cuò)誤和算術(shù)溢出錯(cuò)誤將導(dǎo)致返回空值。如果 SET ANSI_WARNINGS 為 ON,則按 SQL-92 標(biāo)準(zhǔn)的指定將取消 INSERT 或 UPDATE。將忽略字符列的尾隨空格,忽略二進(jìn)制列的尾隨零。當(dāng)設(shè)置為 OFF 時(shí),數(shù)據(jù)將剪裁為列的大小,并且語(yǔ)句執(zhí)行成功。

      說(shuō)明  在 binaryvarbinary 數(shù)據(jù)轉(zhuǎn)換中發(fā)生截?cái)鄷r(shí),不管 SET 選項(xiàng)的設(shè)置是什么,都不發(fā)出警告或錯(cuò)誤信息。





    可以使用 sp_configureuser options 選項(xiàng),為與服務(wù)器的所有連接設(shè)置 ANSI_WARNINGS 的默認(rèn)設(shè)置。有關(guān)更多信息,請(qǐng)參見 sp_configure設(shè)置配置選項(xiàng)。



    創(chuàng)建或操作索引視圖或計(jì)算列上的索引時(shí),SET ANSI_WARNINGS 必須為 ON。如果 SET ANSI_WARNINGS 為 OFF,計(jì)算列或索引視圖上帶索引的表上的 CREATE、UPDATE、INSERT 和 DELETE 語(yǔ)句將失敗。有關(guān)計(jì)算列上的索引視圖和索引所必需的 SET 選項(xiàng)設(shè)置的更多信息,請(qǐng)參見 SET 中的"使用 SET 語(yǔ)句時(shí)的注意事項(xiàng)"。



    Microsoft® SQL Server™ 包含 ANSI warnings 數(shù)據(jù)庫(kù)選項(xiàng),該選項(xiàng)等同于 SET ANSI_WARNINGS。當(dāng) SET ANSI_WARNINGS 為 ON 時(shí),如發(fā)生被零除、字符串超出數(shù)據(jù)庫(kù)列及其它類似錯(cuò)誤,將產(chǎn)生錯(cuò)誤信息或警告。當(dāng) SET ANSI_WARNINGS 為 OFF 時(shí),不產(chǎn)生這些錯(cuò)誤和警告。model 數(shù)據(jù)庫(kù)中的 SET ANSI_WARNINGS 默認(rèn)值是 OFF。如果未指定,則應(yīng)用 ANSI warnings 設(shè)置。如果 SET ANSI_WARNINGS 為 OFF,SQL Server 將使用 sp_dboptionANSI warnings 設(shè)置。有關(guān)更多信息,請(qǐng)參見 sp_dboption設(shè)置數(shù)據(jù)庫(kù)選項(xiàng)。



    在執(zhí)行分布式查詢時(shí)應(yīng)將 ANSI_WARNINGS 設(shè)置為 ON。



    SQL Server ODBC 驅(qū)動(dòng)程序和用于 SQL Server 的 Microsoft OLE DB 提供程序在連接時(shí)自動(dòng)將 ANSI_WARNINGS 設(shè)置為 ON。這可以在 ODBC 數(shù)據(jù)源、ODBC 連接特性或 OLE DB 連接屬性(它們?cè)谶B接前在應(yīng)用程序中設(shè)置)中進(jìn)行配置。對(duì)來(lái)自 DB-Library 應(yīng)用程序的連接,SET ANSI_WARNINGS 默認(rèn)為 OFF。



    當(dāng) SET ANSI_DEFAULTS 為 ON 時(shí),將啟用 SET ANSI_WARNINGS。



    SET ANSI_WARNINGS 的設(shè)置是在執(zhí)行或運(yùn)行時(shí)設(shè)置,而不是在分析時(shí)設(shè)置。



    如果 SET ARITHABORT 或 SET ARITHIGNORE 為 OFF,并且 SET ANSI_WARNINGS 為 ON,則當(dāng)遇到被零除或溢出錯(cuò)誤時(shí),SQL Server 仍返回錯(cuò)誤信息。



    權(quán)限


    SET ANSI_WARNINGS 權(quán)限默認(rèn)授予所有用戶。



    示例


    下例演示 SET ANSI_WARNINGS 為 ON 和 OFF 時(shí)的上述三種情況。



    USE pubs
    GO
    CREATE TABLE T1 ( a int, b int NULL, c varchar(20) )
    GO
    SET NOCOUNT ON
    GO
    INSERT INTO T1 VALUES (1, NULL, '')
    INSERT INTO T1 VALUES (1, 0, '')
    INSERT INTO T1 VALUES (2, 1, '')
    INSERT INTO T1 VALUES (2, 2, '')
    GO
    SET NOCOUNT OFF
    GO

    PRINT '**** Setting ANSI_WARNINGS ON'
    GO

    SET ANSI_WARNINGS ON
    GO

    PRINT 'Testing NULL in aggregate'
    GO
    SELECT a, SUM(b) FROM T1 GROUP BY a
    GO

    PRINT 'Testing String Overflow in INSERT'
    GO
    INSERT INTO T1 VALUES (3, 3, 'Text string longer than 20 characters')
    GO

    PRINT 'Testing Divide by zero'
    GO
    SELECT a/b FROM T1
    GO

    PRINT '**** Setting ANSI_WARNINGS OFF'
    GO
    SET ANSI_WARNINGS OFF
    GO

    PRINT 'Testing NULL in aggregate'
    GO
    SELECT a, SUM(b) FROM T1 GROUP BY a
    GO

    PRINT 'Testing String Overflow in INSERT'
    GO
    INSERT INTO T1 VALUES (4, 4, 'Text string longer than 20 characters')
    GO

    PRINT 'Testing Divide by zero'
    GO
    SELECT a/b FROM T1
    GO
    DROP TABLE T1
    GO
    相關(guān)文章
    本頁(yè)查看次數(shù):