freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

1000sql經(jīng)典語句-sql語法-資料下載頁

2025-08-04 23:59本頁面
  

【正文】 arChar類型)224412121919腳本:create table Temp(IntegerColumn int,VarCharColumn varchar(10))goinsert into Temp values(2,39。239。)insert into Temp values(4,39。439。)insert into Temp values(12,39。1239。)insert into Temp values(19,39。1939。)godrop table Temp如果分別調(diào)用MIN()與MAX()函數(shù)將會返回什么值呢?select MIN(IntegerColumn),MAX(IntegerColumn) from Tempselect MIN(VarCharColumn),MAX(VarCharColumn) from Temp因為VarCharColumn中值的存儲類型為字符類型,而不是數(shù)字,所以結(jié)果以每個字符的ASCII值為順序從左到右排序。這就是12比其他值小、而4比其他值大的原因。SUM()函數(shù)SUM()函數(shù)是最常用的聚合函數(shù)之一,它的功能很容易理解:和AVG()函數(shù)一樣,它用于數(shù)值數(shù)據(jù)類型,返回一個列范圍內(nèi)所有非空值的總和。配置變量配置變量不是函數(shù),不過它們的用法和系統(tǒng)函數(shù)相同。每個全局變量都能夠返回SQL Server執(zhí)行環(huán)境的標(biāo)量信息。以下是一些常見的例子。@@ERROR變量這個變量包含當(dāng)前連接發(fā)生的最后一次錯誤的代碼。在執(zhí)行的語句沒有錯誤時,@@ERROR變量的值是0。出現(xiàn)標(biāo)準(zhǔn)錯誤時,錯誤是由數(shù)據(jù)庫引擎引發(fā)的。,可以使用如下腳本查詢:SELECT * FROM 定制錯誤可以通過調(diào)用RAISERROR語句來手動引發(fā),并調(diào)用sp_addmessage系統(tǒng)存儲過程將其添加到sysmessages表中。以下是一個@@ERROR變量的簡單例子。先試著將一個數(shù)除以0,數(shù)據(jù)庫引擎會引發(fā)標(biāo)準(zhǔn)錯誤號為8134的錯誤。注意查看Results選項卡中的查詢結(jié)果。在發(fā)生錯誤時,Management Studio的Messages選項卡將默認(rèn)顯示在Results選項卡的上面:SELECT 5 / 0SELECT @@ERROR在成功檢索@@ERROR的值后,@@ERROR的值將返回0,因為@@ERROR只保存了上次執(zhí)行的語句的錯誤代碼。如果希望檢索更多的錯誤信息,可以使用如下腳本從sysmessages視圖中得到:SELECT 5 / 0SELECT * FROM WHERE error = @@ERROR本節(jié)的后面部分內(nèi)容將說明如何通過使用錯誤函數(shù)來更高效地返回錯誤數(shù)據(jù)。除了美國英語之外,SQL Server還默認(rèn)安裝了其他語言。每種語言專用的錯誤消息都有一個語言標(biāo)識符(mslangid),對應(yīng)于syslanguages表中的一種語言,如下圖所示。errorseveritydleveldescriptionmsglangid8134160Divide by zero error encountered.10338134160Fehler aufgrund einer Division durch Null.10318134160Division par z233。ro.103681341600 除算エラーが発生しました。10418134160Error de divisi243。n entre cero.30828134160Errore di divisione per zero.10408134160Обнаружена ошибка: деление на ноль.10498134160Erro de divis227。o por zero.10468134160發(fā)現(xiàn)除以零的錯誤。102881341600?? ??? ??? ??????.10428134160遇到以零作除數(shù)錯誤。2052屬性名mslangid被非正式地定義為Microsoft Global Language Identifier。微軟公司用這個標(biāo)識符來標(biāo)識一種語言或語言和國家的組合,微軟公司把語言和國家的組合定義為地區(qū)。例如,在隨SQL Server安裝的英語中,美國英語的mslangid是1033,英國英語的mslangid是2057。要檢索出所有已安裝的、支持的語言,可以執(zhí)行下面的查詢:SELECT alias, name, msglangidFROM @@SERVICENAME變量這個變量是用于執(zhí)行和維護(hù)當(dāng)前SQL Server實例的Windows服務(wù)名。它通常返回SQL Server默認(rèn)實例MSSQLSERVER,但SQL Server的指定實例有唯一的服務(wù)名。例如在名為WoodVista的計算機(jī)上有兩個SQL Server實例:默認(rèn)實例和指定實例AughtEight。如在默認(rèn)實例上檢索@@SERVICENAME全局變量的內(nèi)容,將返回MSSQLSERVER,但在指定實例上檢索,會返回AUGHTEIGHT。@@TOTAL_ERRORS變量這個變量用于記錄從打開當(dāng)前連接開始發(fā)生的總錯誤次數(shù)。和@@ERROR變量一樣,它對每個用戶會話是唯一的,并將在連接關(guān)閉時被重置。@@TOTAL_READ變量這個變量記錄從打開當(dāng)前連接時開始計算的磁盤讀取總數(shù)。DBA使用這個變量查看磁盤讀取活動的情況。@@VERSION變量這個變量包含當(dāng)前SQL Server實例的完整版本信息。SELECT @@VERSION比如,對于運(yùn)行在Windows 7上的SQL Server 2008開發(fā)版實例,以上腳本能夠返回如下信息:Microsoft SQL Server 2008 (RTM) (Intel X86) Jul9 2008 14:43:34 Copyright (c) 19882008 Microsoft CorporationEnterprise Edition on Windows NT X86 (Build 7600: )實際的版本號是一個簡單的整型值,它在微軟公司內(nèi)部使用。而發(fā)行的產(chǎn)品可能有其他的商標(biāo)名。在本例中,SQL Server 2005的版本是9,SQL Server 2008的版本是10。Windows XP Professional顯示為Windows NT 。構(gòu)建號用于內(nèi)部控制,反映beta版和預(yù)覽版以及正式發(fā)行后的補(bǔ)丁包的變化。錯誤函數(shù)前面學(xué)習(xí)了如何使用@@ERROR全局變量來檢索錯誤信息。而返回所有錯誤數(shù)據(jù)的更好方法是使用錯誤函數(shù)。這些函數(shù)返回的信息可以存儲在錯誤跟蹤表中,以供錯誤審核。錯誤函數(shù)嵌套在錯誤處理例程中。第11章將詳細(xì)討論錯誤處理,其實通過使用嵌套在TRY和END TRY語句中的代碼塊,后跟一個放在CATCH和END CATCH語句中的代碼塊就可以實現(xiàn)錯誤處理。Try to do somethingBEGIN TRY SELECT 5 / 0END TRYIf it causes an error, do thisBEGIN CATCH PRINT ERROR_MESSAGE()END CATCH所謂的錯誤捕獲,其實就是這個意思。如果運(yùn)行上面的示例,將不會出現(xiàn)可識別的錯誤,因為錯誤將被捕獲并在CATCH語句塊中進(jìn)行處理。在編寫錯誤處理代碼時,SQL程序員必須把這些代碼放在會引發(fā)系統(tǒng)錯誤的catch代碼塊中。下列幾個錯誤函數(shù)用于返回錯誤的特定信息:函數(shù)說明ERROR_MESSAGE()返回錯誤的描述。ERROR_NUMBER()返回錯誤號。ERROR_SEVERITY()返回錯誤的嚴(yán)重級別。錯誤的嚴(yán)重級別是一個從0到25的整數(shù)。ERROR_STATE()返回錯誤的狀態(tài)號。錯誤狀態(tài)是一個整數(shù),可以唯一地表示系統(tǒng)錯誤的原因。ERROR_LINE()返回例程中導(dǎo)致出錯的行號。ERROR_PROCEDURE()返回發(fā)生錯誤的存儲過程名或觸發(fā)器名。下表簡要描述了嚴(yán)重級別。嚴(yán)重級別說 明0~10信息性消息。不會引發(fā)系統(tǒng)錯誤11~16用戶可以更正的錯誤,例如違反了外鍵或主鍵規(guī)則17非致命的、不重要的資源錯誤18非致命的內(nèi)部錯誤19致命的、不重要的資源錯誤20當(dāng)前進(jìn)程中的致命錯誤21所有進(jìn)程中的致命數(shù)據(jù)庫錯誤22致命的表完整性錯誤23致命的數(shù)據(jù)庫完整性錯誤24致命的硬件錯誤25致命的系統(tǒng)錯誤下面腳本使用TSQL的內(nèi)置錯誤處理功能,來捕獲和輸出遇到除0錯誤時返回的錯誤數(shù)據(jù)。SELECT命令的結(jié)果將顯示在Management Studio的消息選項卡中。Try to do somethingBEGIN TRY SELECT 5 / 0END TRYIf it causes an error, do thisBEGIN CATCH SELECT ERROR_MESSAGE(),ERROR_NUMBER(),ERROR_SEVERITY(), ERROR_STATE(),ERROR_LINE(),ERROR_PROCEDURE()END CATCH可以看出,執(zhí)行這個腳本會在消息選項卡中返回有關(guān)錯誤的更多詳細(xì)信息,而不僅僅是錯誤號本身。ERROR_PROCEDURE()函數(shù)不能返回過程名,因為錯誤是在adhoc查詢中生成的。轉(zhuǎn)換函數(shù)數(shù)據(jù)類型轉(zhuǎn)換可以通過CAST()和CONVERT()函數(shù)來實現(xiàn)。大多數(shù)情況下,這兩個函數(shù)是重疊的,它們反映了SQL語言的演化歷史。這兩個函數(shù)的功能相似,不過它們的語法不同。雖然并非所有類型的值都能轉(zhuǎn)變?yōu)槠渌麛?shù)據(jù)類型,但總的來說,任何可以轉(zhuǎn)換的值都可以用簡單的函數(shù)實現(xiàn)轉(zhuǎn)換。CAST()函數(shù)CAST()函數(shù)的參數(shù)是一個表達(dá)式,它包括用AS關(guān)鍵字分隔的源值和目標(biāo)數(shù)據(jù)類型。以下例子用于將文本字符串39。12339。轉(zhuǎn)換為整型:SELECT CAST(39。12339。 AS int)返回值是整型值123。如果試圖將一個代表小數(shù)的字符串轉(zhuǎn)換為整型值,又會出現(xiàn)什么情況呢?SELECT CAST(39。39。 AS int)CAST()函數(shù)和CONVERT()函數(shù)都不能執(zhí)行四舍五入或截斷操作。,所以對這個函數(shù)調(diào)用將產(chǎn)生一個錯誤:Server: Msg 245, Level 16, State 1, Line 1 Syntax error converting the varchar value39。39。 to a columnof data type int. 在將varchar 值39。39。 轉(zhuǎn)換成數(shù)據(jù)類型int 時失敗。要返回一個合法的數(shù)值,就必須使用能處理這個值的數(shù)據(jù)類型。對于這個例子,存在多個可用的數(shù)據(jù)類型。如果通過CAST()函數(shù)將這個值轉(zhuǎn)換為decimal類型,需要首先定義decimal值的精度與小數(shù)位數(shù)。在本例中,精度與小數(shù)位數(shù)分別為9與2。精度是總的數(shù)字位數(shù),包括小數(shù)點(diǎn)左邊和右邊位數(shù)的總和。而小數(shù)位數(shù)是小數(shù)點(diǎn)右邊的位數(shù)。這表示本例能夠支持的最大的整數(shù)值是9999999。SELECT CAST(39。39。 AS decimal(9,2))decimal數(shù)據(jù)類型在結(jié)果網(wǎng)格中將顯示有效小數(shù)位: 精度和小數(shù)位數(shù)的默認(rèn)值分別是18與0。如果在decimal類型中不提供這兩個值,SQL Server將截斷數(shù)字的小數(shù)部分,而不會產(chǎn)生錯誤。SELECT CAST(39。39。 AS decimal)結(jié)果是一個整數(shù)值:123 在表的數(shù)據(jù)中轉(zhuǎn)換數(shù)據(jù)類型是很簡單的。下面的例子使用Product表,首先執(zhí)行如下查詢:SELECT ProductNumber, ProductLine, ProductModelIDFROM WHERE ProductSubcategoryID 4假定產(chǎn)品經(jīng)理已經(jīng)創(chuàng)建了一個系統(tǒng),用于唯一地標(biāo)識生產(chǎn)出來的每輛自行車,以便跟蹤其型號、類型和類別。他決定合并產(chǎn)品號、產(chǎn)品生產(chǎn)線標(biāo)識符、產(chǎn)品型號標(biāo)識符和一個順序號,為生產(chǎn)出來的每輛自行車創(chuàng)建一個唯一的序列號。在這個過程的第一步,他要求提供包括除順序號之外的所有屬性的所有可能產(chǎn)品的根標(biāo)識符。如果使用下面的表達(dá)式,就不能得到希望的結(jié)果,如圖62所示。SELECT ProductNumber + 39。39。 + ProductLine + 39。39。 + ProductModelID AS BikeSerialNumFROM WHERE ProductSubcategoryID 4消息245,級別16,狀態(tài)1,第1 行在將nvarchar 值39。BKR93R62R 39。 轉(zhuǎn)換成數(shù)據(jù)類型int 時失敗。我們沒有得到希望的結(jié)果,而得到了有點(diǎn)奇怪的錯誤消息:請把nvarchar值轉(zhuǎn)換為int。因為之前我們沒有要求進(jìn)行任何轉(zhuǎn)換,所以這個錯誤很奇怪。這個查詢的問題在于我們試圖利用第一個連接符來連接字符值ProductNumber,利用第二個連接符連接另一個字符值ProductLine,最后連接的是ProductModelID字符值(它是一個整數(shù))。查詢引擎會把連接符當(dāng)成一個數(shù)學(xué)運(yùn)算符,而不是一個字符。不管結(jié)果是什么,都需要更正這個表達(dá)式,以確保使用正確的數(shù)據(jù)類型。以下表達(dá)式執(zhí)行了必要的類型轉(zhuǎn)換,返回如圖6
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1