SQL中遺留的"系統(tǒng)"函數(shù)
下文將為您介紹SQL中的系統(tǒng)函數(shù),該函數(shù)在SQL中屬于比較重要的函數(shù),供您參考,希望對(duì)您有所幫助。
a. @@DateFirst :當(dāng)前系統(tǒng)認(rèn)為星期幾是一周的第一天,則返回那一天的數(shù)字值. 可以使用Set DateFirst函數(shù)來(lái)更改它的值;如可使用Set DateFirst 1來(lái)設(shè)置星期一做為一周的第一天。
b. @@DBTS:當(dāng)前數(shù)據(jù)庫(kù)最后使用的時(shí)間戳值。此處需要注意:(1)該值將基于數(shù)據(jù)庫(kù)中任何改變而發(fā)生改變,而不僅僅是你所工作的表。(2)數(shù)據(jù)庫(kù)中人選何時(shí)間戳的改變都會(huì)反映出來(lái),而不僅僅是針對(duì)當(dāng)前連接的改變。
c. @@Cursor_Rows:在當(dāng)前連接打開(kāi)的上一個(gè)游標(biāo)集中當(dāng)前行的數(shù)目。每當(dāng)打開(kāi)一個(gè)新游標(biāo)時(shí),該值將被重置。如果需要一次打開(kāi)一個(gè)以上的游標(biāo),并且需要知道第一個(gè)的行數(shù)。根據(jù)游標(biāo)類型以及SQL Server是否是異步地填充游標(biāo),@@Cursor_Rows中所包含的值可能會(huì)發(fā)生改變。使用@@Fetch_Status將更加可靠。
如果返回值是絕對(duì)值大于-1的負(fù)數(shù)和,那么,你一定是在使用異步游標(biāo),并且,這個(gè)負(fù)數(shù)是當(dāng)前創(chuàng)建在游標(biāo)中的記錄的數(shù)目。然而,如果該值是-1,則游標(biāo)是動(dòng)態(tài)游標(biāo),游標(biāo)的行數(shù)不斷變化,返回值為0,則告知你,要么沒(méi)有打開(kāi)的游標(biāo),要么上一個(gè)打開(kāi)的游標(biāo)已被關(guān)閉或釋放。任何正數(shù)的值表示游標(biāo)中行的數(shù)目.
d. @@Error:返回在當(dāng)前連接中運(yùn)行的最后一個(gè)T-SQL語(yǔ)句的錯(cuò)誤號(hào)。如果沒(méi)有錯(cuò)誤則返回值為0.通過(guò)master數(shù)據(jù)庫(kù)中的sysmessage系統(tǒng)表,可以看到所有的系統(tǒng)錯(cuò)誤列表。要?jiǎng)?chuàng)建算定義錯(cuò)誤,可以使用sp_addmessage.
e. @@Fetch_Status:返回最后一個(gè)游標(biāo)Fetch操作狀態(tài)的指示值。如果使用游標(biāo) ,那么將會(huì)用到@@Fetch_Status.當(dāng)你在游標(biāo)中試圖導(dǎo)航到一條記錄時(shí),該值使你短簡(jiǎn)操作是成功還是失敗。根據(jù)SQL Server在最后一個(gè)Fetch操作中是否成功,以及如果Fetch操作失敗,失敗的原因是什么,@@Fetch_Status將返回一個(gè)常量:
0:成功. -1:失敗,通常由于超出了游標(biāo)集的開(kāi)始或末尾。 -2:失敗:沒(méi)有找到要提取的行,通常是由于在創(chuàng)建游標(biāo)集和導(dǎo)航到當(dāng)前行的期間 ,該行被刪除了,這只會(huì)發(fā)生在滾動(dòng)游標(biāo),非動(dòng)態(tài)游標(biāo)上。
mailto:f.@@Identity :返回當(dāng)前連接創(chuàng)建的最后一個(gè)標(biāo)識(shí)值.如果插入的最后一個(gè)表沒(méi)有標(biāo)識(shí)列,則@@Identity將被設(shè)置為NULL .
g. @@LangID和 @@Language: 這二者分別返回當(dāng)前使用的語(yǔ)言的ID和名稱,如果要得到SQL Server當(dāng)前支持的語(yǔ)言的完整列表,可以使用系統(tǒng)存儲(chǔ)過(guò)程sp_helplanguage.
h. @@Lock_TimeOut:返回在系統(tǒng)在超時(shí)前,等待阻塞的時(shí)間的當(dāng)前設(shè)置值,以毫秒為單位。
i. @@MAX_Connections:返回Sql Server上允許同時(shí)進(jìn)行的最大的用戶連接數(shù)。不要把這個(gè)系統(tǒng)函數(shù)與在Management Console中看到的“最大連接數(shù)”屬性混為一談。該值是基于許可的,當(dāng)你選擇“每客戶”許可類型時(shí),會(huì)看到很大的數(shù)值。
注意:實(shí)際允許的用戶連接數(shù)還依賴于所使用的SQL Server的版本以及應(yīng)用程序和硬件的限制.
j. @@Max_Precision:返回當(dāng)前為decimal和numeric數(shù)據(jù)類型所設(shè)置的精度級(jí)別。默認(rèn)情況下是38值。在啟動(dòng)SQL Server時(shí),可以使用/p選項(xiàng)更改該值??梢酝ㄟ^(guò)從命令行啟動(dòng)Sql Server來(lái)添加/p選項(xiàng)。
k. @@NetLevel :返回嵌套的存儲(chǔ)過(guò)程的當(dāng)前嵌套級(jí)別。第一個(gè)存儲(chǔ)過(guò)程運(yùn)行時(shí)擁有的級(jí)別為0.如果那個(gè)存儲(chǔ)過(guò)程調(diào)用另一個(gè)存儲(chǔ)過(guò)程,則第二個(gè)存儲(chǔ)過(guò)程被稱為嵌套在第一個(gè)存儲(chǔ)過(guò)程中(并且嵌套級(jí)別遞增為1).以此類扒。直至到達(dá)最大值級(jí)數(shù)32的嘗試,如果超過(guò)32級(jí)別的嵌套深度,則不僅事務(wù)會(huì)被終止,而且, 時(shí)應(yīng)當(dāng)重新考慮你的應(yīng)用程序的設(shè)計(jì)。
l. @@Options:返回使用set命令所應(yīng)用的選項(xiàng)信息
【編輯推薦】
Sql Server數(shù)據(jù)類型轉(zhuǎn)換函數(shù)
SQL中自定義函數(shù)的存儲(chǔ)過(guò)程的區(qū)別