MSSQL 檢查所使用的語(yǔ)句是否符合標(biāo)準(zhǔn)
更新時(shí)間:2009年11月24日 01:55:17 作者:
標(biāo)準(zhǔn)SQL和T-SQL之間有很多區(qū)別——太多了,這里就不說(shuō)了。還有,如果你在SQL Server上工作,
那么使用這些私有的擴(kuò)展是有好處的。
檢查所使用的語(yǔ)句是否標(biāo)準(zhǔn)
/*
標(biāo)準(zhǔn)SQL和T-SQL之間有很多區(qū)別——太多了,這里就不說(shuō)了。還有,如果你在SQL Server上工作,
那么使用這些私有的擴(kuò)展是有好處的。由于許多SQL Server的特性的本質(zhì),你不使用非標(biāo)準(zhǔn)的命令的話,
將會(huì)有很多強(qiáng)大的功能無(wú)法實(shí)現(xiàn)。如果你想要看看你的SQL是否符合標(biāo)準(zhǔn),你可以使用SET FIPS_FLAGGER
命令
*/
SET FIPS_FLAGGER 'level'
/*
' level '
對(duì) FIPS 127-2 標(biāo)準(zhǔn)的遵從級(jí)別,將檢查所有數(shù)據(jù)庫(kù)操作是否達(dá)到該級(jí)別。如果數(shù)據(jù)庫(kù)操作與選定的 ISO 標(biāo)準(zhǔn)級(jí)別沖突,則 Microsoft SQL Server 將生成一個(gè)警告。
level 必須是下列值中的一個(gè)。
值 說(shuō)明
ENTRY 檢查是否遵從 ISO 入門(mén)級(jí)標(biāo)準(zhǔn)。
FULL
檢查是否遵從 ISO 完全級(jí)標(biāo)準(zhǔn)。
INTERMEDIATE 檢查是否遵從 ISO 中間級(jí)標(biāo)準(zhǔn)。
OFF
不檢查是否遵從標(biāo)準(zhǔn)。
*/
/*
SET FIPS_FLAGGER 的設(shè)置是在分析時(shí)設(shè)置,而不是在執(zhí)行或運(yùn)行時(shí)設(shè)置。在分析時(shí)進(jìn)行設(shè)置意味著:SET 語(yǔ)句只要出現(xiàn)在批處理或存儲(chǔ)過(guò)程中即生效,與代碼執(zhí)行實(shí)際上是否到達(dá)該點(diǎn)無(wú)關(guān);并且 SET 語(yǔ)句在任何語(yǔ)句執(zhí)行之前生效。例如,假設(shè) SET 語(yǔ)句在 IF...ELSE 語(yǔ)句塊中,而在執(zhí)行過(guò)程中從未到達(dá)過(guò)該語(yǔ)句塊,但由于分析了 IF...ELSE 語(yǔ)句塊,因此 SET 語(yǔ)句仍生效。
如果在存儲(chǔ)過(guò)程中設(shè)置 SET FIPS_FLAGGER,則從存儲(chǔ)過(guò)程返回控制后將還原 SET FIPS_FLAGGER 的值。因此,在動(dòng)態(tài) SQL 中指定的 SET FIPS_FLAGGER 語(yǔ)句對(duì)動(dòng)態(tài) SQL 語(yǔ)句之后的任何語(yǔ)句無(wú)效。
*/
/*
標(biāo)準(zhǔn)SQL和T-SQL之間有很多區(qū)別——太多了,這里就不說(shuō)了。還有,如果你在SQL Server上工作,
那么使用這些私有的擴(kuò)展是有好處的。由于許多SQL Server的特性的本質(zhì),你不使用非標(biāo)準(zhǔn)的命令的話,
將會(huì)有很多強(qiáng)大的功能無(wú)法實(shí)現(xiàn)。如果你想要看看你的SQL是否符合標(biāo)準(zhǔn),你可以使用SET FIPS_FLAGGER
命令
*/
SET FIPS_FLAGGER 'level'
/*
' level '
對(duì) FIPS 127-2 標(biāo)準(zhǔn)的遵從級(jí)別,將檢查所有數(shù)據(jù)庫(kù)操作是否達(dá)到該級(jí)別。如果數(shù)據(jù)庫(kù)操作與選定的 ISO 標(biāo)準(zhǔn)級(jí)別沖突,則 Microsoft SQL Server 將生成一個(gè)警告。
level 必須是下列值中的一個(gè)。
值 說(shuō)明
ENTRY 檢查是否遵從 ISO 入門(mén)級(jí)標(biāo)準(zhǔn)。
FULL
檢查是否遵從 ISO 完全級(jí)標(biāo)準(zhǔn)。
INTERMEDIATE 檢查是否遵從 ISO 中間級(jí)標(biāo)準(zhǔn)。
OFF
不檢查是否遵從標(biāo)準(zhǔn)。
*/
/*
SET FIPS_FLAGGER 的設(shè)置是在分析時(shí)設(shè)置,而不是在執(zhí)行或運(yùn)行時(shí)設(shè)置。在分析時(shí)進(jìn)行設(shè)置意味著:SET 語(yǔ)句只要出現(xiàn)在批處理或存儲(chǔ)過(guò)程中即生效,與代碼執(zhí)行實(shí)際上是否到達(dá)該點(diǎn)無(wú)關(guān);并且 SET 語(yǔ)句在任何語(yǔ)句執(zhí)行之前生效。例如,假設(shè) SET 語(yǔ)句在 IF...ELSE 語(yǔ)句塊中,而在執(zhí)行過(guò)程中從未到達(dá)過(guò)該語(yǔ)句塊,但由于分析了 IF...ELSE 語(yǔ)句塊,因此 SET 語(yǔ)句仍生效。
如果在存儲(chǔ)過(guò)程中設(shè)置 SET FIPS_FLAGGER,則從存儲(chǔ)過(guò)程返回控制后將還原 SET FIPS_FLAGGER 的值。因此,在動(dòng)態(tài) SQL 中指定的 SET FIPS_FLAGGER 語(yǔ)句對(duì)動(dòng)態(tài) SQL 語(yǔ)句之后的任何語(yǔ)句無(wú)效。
*/
相關(guān)文章
SqlServer2012中LEAD函數(shù)簡(jiǎn)單分析
SQL SERVER 2012 T-SQL新增幾個(gè)聚合函數(shù): FIRST_VALUE LAST_VALUE LEAD LAG,今天我們首先來(lái)簡(jiǎn)單分析下LEAD,希望對(duì)大家有所幫助,能夠盡快熟悉這個(gè)聚合函數(shù)2014-08-08
sql 2000 無(wú)法執(zhí)行查詢(xún),因?yàn)橐恍┪募鄙倩蛭醋?cè)"的解決方法
在SQL server 2000中打開(kāi)表查看數(shù)據(jù)的時(shí)候,提示說(shuō)無(wú)法執(zhí)行查詢(xún),因?yàn)橐恍┪募鄙倩蛭醋?cè)用查詢(xún)分析器可以查看數(shù)據(jù),重裝了sql2000也沒(méi)有用,這里分享下解決方法2014-01-01
SQL Server 批量插入數(shù)據(jù)的完美解決方案
這篇文章主要介紹了SQL Server 批量插入數(shù)據(jù)的完美解決方案,需要的朋友可以參考下2020-12-12
Sqlserver 存儲(chǔ)過(guò)程中結(jié)合事務(wù)的代碼
Sqlserver 存儲(chǔ)過(guò)程中使用事務(wù)2010-06-06
寫(xiě)SQL查詢(xún)時(shí)常用到的日期函數(shù)示例詳解
文章介紹了SQL中常用的日期和時(shí)間函數(shù),包括獲取當(dāng)前日期和時(shí)間、提取日期和時(shí)間的各個(gè)部分、計(jì)算日期和時(shí)間的間隔、格式化日期和時(shí)間、計(jì)算兩個(gè)日期之間的差異、轉(zhuǎn)換日期格式以及獲取星期和季度等,感興趣的朋友一起看看吧2025-02-02
sqlserver數(shù)據(jù)庫(kù)移動(dòng)數(shù)據(jù)庫(kù)路徑的腳本示例
前段時(shí)間做過(guò)這么一件事情,把原本放在c盤(pán)的所有數(shù)據(jù)庫(kù)(除了sql server系統(tǒng)文件外)文件Move到D盤(pán),主要是為了方便后續(xù)管理以及減少磁盤(pán)I/O阻塞(C,D是2個(gè)獨(dú)立磁盤(pán))。腳本需輸入2個(gè)參數(shù):目標(biāo)數(shù)據(jù)庫(kù)名字和目標(biāo)目錄2013-12-12
sql server編寫(xiě)通用腳本實(shí)現(xiàn)獲取一年前日期的方法
這篇文章主要介紹了sql server編寫(xiě)通用腳本實(shí)現(xiàn)獲取一年前日期,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07

