第一篇:SQL Server字符串處理函數(shù)大全
SQL Server字符串處理函數(shù)大全.txt SQL Server字符串處理函數(shù)大全2009年10月18日 星期日 08:48select 字段1 from 表1 where 字段1.IndexOf(“云”)=1;這條語句不對的原因是indexof()函數(shù)不是sql函數(shù),改成sql對應(yīng)的函數(shù)就可以了。left()是sql函數(shù)。
select 字段1 from 表1 where charindex('云',字段1)=1;字符串函數(shù)對二進制數(shù)據(jù)、字符串和表達式執(zhí)行不同的運算。此類函數(shù)作用于CHAR、VARCHAR、BINARY、和VARBINARY 數(shù)據(jù)類型以及可以隱式轉(zhuǎn)換為CHAR 或VARCHAR的數(shù)據(jù)類型??梢栽赟ELECT 語句的SELECT 和WHERE 子句以及表達式中使用字符串函數(shù)。常用的字符串函數(shù)有:
一、字符轉(zhuǎn)換函數(shù)
1、ASCII()返回字符表達式最左端字符的ASCII 碼值。在ASCII()函數(shù)中,純數(shù)字的字符串可不用‘’括起來,但含其它字符的字符串必須用‘’括起來使用,否則會出錯。
2、CHAR()將ASCII 碼轉(zhuǎn)換為字符。如果沒有輸入0 ~ 255 之間的ASCII 碼值,CHAR()返回NULL。
3、LOWER()和UPPER()LOWER()將字符串全部轉(zhuǎn)為小寫;UPPER()將字符串全部轉(zhuǎn)為大寫。
4、STR()把數(shù)值型數(shù)據(jù)轉(zhuǎn)換為字符型數(shù)據(jù)。
STR(
二、去空格函數(shù)
1、LTRIM()把字符串頭部的空格去掉。
2、RTRIM()把字符串尾部的空格去掉。
三、取子串函數(shù)
1、left()LEFT(
2、RIGHT()RIGHT(
3、SUBSTRING()SUBSTRING(
四、字符串比較函數(shù)
1、CHARINDEX()返回字符串中某個指定的子串出現(xiàn)的開始位置。
CHARINDEX(<’substring_expression’>,
2、PATINDEX()返回字符串中某個指定的子串出現(xiàn)的開始位置。
PATINDEX(<’%substring _expression%’>,
五、字符串操作函數(shù)
1、QUOTENAME()返回被特定字符括起來的字符串。
QUOTENAME(<’character_expression’>[,quote_ character])其中quote_ character 標(biāo)明括字符串所用的字符,缺省值為“[]”。
2、REPLICATE()返回一個重復(fù)character_expression 指定次數(shù)的字符串。
REPLICATE(character_expression integer_expression)如果integer_expression 值為負(fù)值,則返回NULL。
3、REVERSE()將指定的字符串的字符排列順序顛倒。REVERSE(
4、REPLACE()返回被替換了指定子串的字符串。
REPLACE(
4、SPACE()返回一個有指定長度的空白字符串。
SPACE(
5、STUFF()用另一子串替換字符串指定位置、長度的子串。
STUFF(
如果length 長度大于character_expression1 中 start_ position 以右的長度,則character_expression1 只保留首字符。
六、數(shù)據(jù)類型轉(zhuǎn)換函數(shù)
1、CAST()CAST(
2、CONVERT()CONVERT(
1)data_type為SQL Server系統(tǒng)定義的數(shù)據(jù)類型,用戶自定義的數(shù)據(jù)類型不能在此使用。2)length用于指定數(shù)據(jù)的長度,缺省值為30。3)把CHAR或VARCHAR類型轉(zhuǎn)換為諸如INT或SAMLLINT這樣的INTEGER類型、結(jié)果必須是帶正號或負(fù)號的數(shù)值。
4)TEXT類型到CHAR或VARCHAR類型轉(zhuǎn)換最多為8000個字符,即CHAR或VARCHAR數(shù)據(jù)類型是最大長度。
5)IMAGE類型存儲的數(shù)據(jù)轉(zhuǎn)換到BINARY或VARBINARY類型,最多為8000個字符。
6)把整數(shù)值轉(zhuǎn)換為MONEY或SMALLMONEY類型,按定義的國家的貨幣單位來處理,如人民幣、美元、英鎊等。
7)BIT類型的轉(zhuǎn)換把非零值轉(zhuǎn)換為1,并仍以BIT類型存儲。
8)試圖轉(zhuǎn)換到不同長度的數(shù)據(jù)類型,會截短轉(zhuǎn)換值并在轉(zhuǎn)換值后顯示“+”,以標(biāo)識發(fā)生了這種截斷。
9)用CONVERT()函數(shù)的style 選項能以不同的格式顯示日期和時間。style 是將DATATIME 和SMALLDATETIME 數(shù)據(jù)轉(zhuǎn)換為字符串時所選用的由SQL Server 系統(tǒng)提供的轉(zhuǎn)換樣式編號,不同的樣式編號有不同的輸出格式。
七、日期函數(shù)
1、day(date_expression)返回date_expression中的日期值
2、month(date_expression)返回date_expression中的月份值
3、year(date_expression)返回date_expression中的年份值
4、DATEADD()DATEADD(
5、DATEDIFF()DATEDIFF(
6、DATENAME()DATENAME(
7、DATEPART()DATEPART(
8、GETDATE()以DATETIME 的缺省格式返回系統(tǒng)當(dāng)前的日期和時間。
演講稿
尊敬的老師們,同學(xué)們下午好:
我是來自10級經(jīng)濟學(xué)(2)班的學(xué)習(xí)委,我叫張盼盼,很榮幸有這次機會和大家一起交流擔(dān)任學(xué)習(xí)委員這一職務(wù)的經(jīng)驗。
轉(zhuǎn)眼間大學(xué)生活已經(jīng)過了一年多,在這一年多的時間里,我一直擔(dān)任著學(xué)習(xí)委員這一職務(wù)?;赝@一年多,自己走過的路,留下的或深或淺的足跡,不僅充滿了歡愉,也充滿了淡淡的苦澀。一年多的工作,讓我學(xué)到了很多很多,下面將自己的工作經(jīng)驗和大家一起分享。
學(xué)習(xí)委員是班上的一個重要職位,在我當(dāng)初當(dāng)上它的時候,我就在想一定不要辜負(fù)老師及同學(xué)們我的信任和支持,一定要把工作做好。要認(rèn)真負(fù)責(zé),態(tài)度踏實,要有一定的組織,領(lǐng)導(dǎo),執(zhí)行能力,并且做事情要公平,公正,公開,積極落實學(xué)校學(xué)院的具體工作。作為一名合格的學(xué)習(xí)委員,要收集學(xué)生對老師的意見和老師的教學(xué)動態(tài)。在很多情況下,老師無法和那么多學(xué)生直接打交道,很多老師也無暇顧及那么多的學(xué)生,特別是大家剛進入大學(xué),很多人一時還不適應(yīng)老師的教學(xué)模式。學(xué)習(xí)委員是老師與學(xué)生之間溝通的一個橋梁,學(xué)習(xí)委員要及時地向老師提出同學(xué)們的建議和疑問,熟悉老師對學(xué)生的基本要求。再次,學(xué)習(xí)委員在學(xué)習(xí)上要做好模范帶頭作用,要有優(yōu)異的成績,當(dāng)同學(xué)們向我提出問題時,基本上給同學(xué)一個正確的回復(fù)。
總之,在一學(xué)年的工作之中,我懂得如何落實各項工作,如何和班委有效地分工合作,如何和同學(xué)溝通交流并且提高大家的學(xué)習(xí)積極性。當(dāng)然,我的工作還存在著很多不足之處。比日:有的時候得不到同學(xué)們的響應(yīng),同學(xué)們不積極主動支持我的工作;在收集同學(xué)們對自己工作意見方面做得不夠,有些事情做錯了,沒有周圍同學(xué)的提醒,自己也沒有發(fā)覺等等。最嚴(yán)重的一次是,我沒有把英語四六級報名的時間,地點通知到位,導(dǎo)致我們班有4名同學(xué)錯過報名的時間。這次事使我懂得了做事要腳踏實地,不能馬虎。
在這次的交流會中,我希望大家可以從中吸取一些好的經(jīng)驗,帶動本班級的學(xué)習(xí)風(fēng)氣,同時也相信大家在大學(xué)畢業(yè)后找到好的工作。謝謝大家!
第二篇:ASP 字符串處理函數(shù)
ASP 字符串處理函數(shù).txt ASP 字符串處理函數(shù)
Len Len(string|varname)返回字符串內(nèi)字符的數(shù)目,或是存儲一變量所需的字節(jié)數(shù) Trim Trim(string)將字符串前后的空格去掉 Ltrim Ltrim(string)將字符串前面的空格去掉 Rtrim Rtrim(string)將字符串后面的空格去掉 Mid Mid(string,start,length)從string字符串的start字符開始取得length長度的字符串,如果省略第三個參數(shù)表示從start字符開始到字符串結(jié)尾的字符串
Left Left(string,length)從string字符串的左邊取得length長度的字符串 Right Right(string,length)從string字符串的右邊取得length長度的字符串 LCase LCase(string)將string字符串里的所有大寫字母轉(zhuǎn)化為小寫字母 UCase UCase(string)將string字符串里的所有大寫字母轉(zhuǎn)化為大寫字母
StrComp StrComp(string1,string2[,compare])返回string1字符串與string2字符串的比較結(jié)果,如果兩個字符串相同,則返回0,如果小于則返回-1,如果大于則返回1
InStr InStr(string1,string2[, compare])返回string1字符串在string2字符串中第一次出現(xiàn)的位置
Split Split(string1,delimiter[, count[, start]])將字符串根據(jù)delimiter拆分成一維數(shù)組,其中delimiter用于標(biāo)識子字符串界限。如果省略,使用空格(“")作為分隔符。count 返回的子字符串?dāng)?shù)目,-1 指示返回所有子字符串。
start為 1 執(zhí)行文本比較;如果為 0 或者省略執(zhí)行二進制比較。
Replace Replace(expression, find, replacewith[, compare[, count[, start]]])返回字符串,其中指定數(shù)目的某子字符串(find)被替換為另一個子字符串(replacewith)
------------------
[示例:]
1、Len函數(shù)示例:
下面的示例利用 Len 函數(shù)返回字符串中的字符數(shù)目: Dim MyString MyString = Len(”VBSCRIPT“)'MyString 包含 8。
2、Trim、Ltrim、Rtrim函數(shù)示例:
下面的示例利用 LTrim, RTrim, 和 Trim 函數(shù)分別用來除去字符串開始的空格、尾部空格、開始和尾部空格: Dim MyVar MyVar = LTrim(” vbscript “)'MyVar 包含 ”vbscript “。MyVar = RTrim(” vbscript “)'MyVar 包含 ” vbscript“。MyVar = Trim(” vbscript “)'MyVar 包含”vbscript“。
3、Mid函數(shù)示例:
下面的示例利用 Mid 函數(shù)返回字符串中從第四個字符開始的六個字符: Dim MyVar MyVar = Mid(”VB腳本is fun!“, 4, 6)'MyVar 包含 ”Script“。
4、Left函數(shù)示例:
下面的示例利用Left 函數(shù)返回MyString 的左邊三個字母: Dim MyString, LeftString MyString = ”VBSCript“ LeftString = Left(MyString, 3)'LeftString 包含 ”VBS
5、Right函數(shù)示例:
下面的示例利用 Right 函數(shù)從字符串右邊返回指定數(shù)目的字符: Dim AnyString, MyStr AnyString = “Hello World” '定義字符串。MyStr = Right(AnyString, 1)'返回 “d”。
MyStr = Right(AnyString, 6)' 返回 “ World”。
MyStr = Right(AnyString, 20)' 返回 “Hello World”。
6、LCase函數(shù)示例:
下面的示例利用 LCase 函數(shù)把大寫字母轉(zhuǎn)換為小寫字母: Dim MyString Dim LCaseString MyString = “VBSCript” LCaseString = LCase(MyString)' LCaseString 包含 “vbscript”。
7、UCase函數(shù)示例:
下面的示例利用 UCase 函數(shù)返回字符串的大寫形式: Dim MyWord MyWord = UCase(“Hello World”)' 返回“HELLO WORLD”。
8、StrComp函數(shù)示例:
下面的示例利用 StrComp 函數(shù)返回字符串比較的結(jié)果。如果第三個參數(shù)為 1 執(zhí)行文本比較;如果第三個參數(shù)為 0 或者省略執(zhí)行二進制比較。Dim MyStr1, MyStr2, MyComp MyStr1 = “ABCD”: MyStr2 = “abcd” '定義變量。MyComp = StrComp(MyStr1, MyStr2, 1)' 返回 0。MyComp = StrComp(MyStr1, MyStr2, 0)' 返回-1。MyComp = StrComp(MyStr2, MyStr1)' 返回 1。
9、InStr示例:
下面的示例利用 InStr 搜索字符串: Dim SearchString, SearchChar, MyPos SearchString =“XXpXXpXXPXXP”??? SearchChar = “P”?? MyPos = Instr(SearchString, SearchChar)???'返回 9.注意:返回的不是一個字符串在另一個字符串中第一次出現(xiàn)的字符位置,而是字節(jié)位置。
10、Split函數(shù)示例:
Dim MyString, MyArray, Msg MyString = “VBScriptXisXfun!” MyArray = Split(MyString, “x”,-1,1)' MyArray(0)contains “VBScript”.' MyArray(1)contains “is”.' MyArray(2)contains “fun!”.Response.Write(MyArray(0))
11、Replace函數(shù)示例:
Replace(“ABCD”, “BC”, “12”)'得到A12D
演講稿
尊敬的老師們,同學(xué)們下午好:
我是來自10級經(jīng)濟學(xué)(2)班的學(xué)習(xí)委,我叫張盼盼,很榮幸有這次機會和大家一起交流擔(dān)任學(xué)習(xí)委員這一職務(wù)的經(jīng)驗。
轉(zhuǎn)眼間大學(xué)生活已經(jīng)過了一年多,在這一年多的時間里,我一直擔(dān)任著學(xué)習(xí)委員這一職務(wù)。回望這一年多,自己走過的路,留下的或深或淺的足跡,不僅充滿了歡愉,也充滿了淡淡的苦澀。一年多的工作,讓我學(xué)到了很多很多,下面將自己的工作經(jīng)驗和大家一起分享。
學(xué)習(xí)委員是班上的一個重要職位,在我當(dāng)初當(dāng)上它的時候,我就在想一定不要辜負(fù)老師及同學(xué)們我的信任和支持,一定要把工作做好。要認(rèn)真負(fù)責(zé),態(tài)度踏實,要有一定的組織,領(lǐng)導(dǎo),執(zhí)行能力,并且做事情要公平,公正,公開,積極落實學(xué)校學(xué)院的具體工作。作為一名合格的學(xué)習(xí)委員,要收集學(xué)生對老師的意見和老師的教學(xué)動態(tài)。在很多情況下,老師無法和那么多學(xué)生直接打交道,很多老師也無暇顧及那么多的學(xué)生,特別是大家剛進入大學(xué),很多人一時還不適應(yīng)老師的教學(xué)模式。學(xué)習(xí)委員是老師與學(xué)生之間溝通的一個橋梁,學(xué)習(xí)委員要及時地向老師提出同學(xué)們的建議和疑問,熟悉老師對學(xué)生的基本要求。再次,學(xué)習(xí)委員在學(xué)習(xí)上要做好模范帶頭作用,要有優(yōu)異的成績,當(dāng)同學(xué)們向我提出問題時,基本上給同學(xué)一個正確的回復(fù)。
總之,在一學(xué)年的工作之中,我懂得如何落實各項工作,如何和班委有效地分工合作,如何和同學(xué)溝通交流并且提高大家的學(xué)習(xí)積極性。當(dāng)然,我的工作還存在著很多不足之處。比日:有的時候得不到同學(xué)們的響應(yīng),同學(xué)們不積極主動支持我的工作;在收集同學(xué)們對自己工作意見方面做得不夠,有些事情做錯了,沒有周圍同學(xué)的提醒,自己也沒有發(fā)覺等等。最嚴(yán)重的一次是,我沒有把英語四六級報名的時間,地點通知到位,導(dǎo)致我們班有4名同學(xué)錯過報名的時間。這次事使我懂得了做事要腳踏實地,不能馬虎。
在這次的交流會中,我希望大家可以從中吸取一些好的經(jīng)驗,帶動本班級的學(xué)習(xí)風(fēng)氣,同時也相信大家在大學(xué)畢業(yè)后找到好的工作。謝謝大家!
第三篇:sqlserver日志文件總結(jié)及充滿處理
sqlserver日志文件總結(jié)及充滿處理 文章來源:sqlserver論壇 作者:hansbj
交易日志(Transaction logs)是數(shù)據(jù)庫結(jié)構(gòu)中非常重要但又經(jīng)常被忽略的部分。由于它并不像數(shù)據(jù)庫中的schema那樣活躍,因此很少有人關(guān)注交易日志。
交易日志是針對數(shù)據(jù)庫改變所做的記錄,它可以記錄針對數(shù)據(jù)庫的任何操作,并將記錄結(jié)果保存在獨立的文件中。對于任何每一個交易過程,交易日志都有非常全面的記錄,根據(jù)這些記錄可以將數(shù)據(jù)文件恢復(fù)成交易前的狀態(tài)。從交易動作開始,交易日志就處于記錄狀態(tài),交易過程中對數(shù)據(jù)庫的任何操作都在記錄范圍,直到用戶點擊提交或后退后才結(jié)束記錄。每個數(shù)據(jù)庫都擁有至少一個交易日志以及一個數(shù)據(jù)文件。
出于性能上的考慮,SQL Server將用戶的改動存入緩存中,這些改變會立即寫入交易日志,但不會立即寫入數(shù)據(jù)文件。交易日志會通過一個標(biāo)記點來確定某個交易是否已將緩存中的數(shù)據(jù)寫入數(shù)據(jù)文件。當(dāng)SQL Server重啟后,它會查看日志中最新的標(biāo)記點,并將這個標(biāo)記點后面的交易記錄抹去,因為這些交易記錄并沒有真正的將緩存中的數(shù)據(jù)寫入數(shù)據(jù)文件。這可以防止那些中斷的交易修改數(shù)據(jù)文件。
維護交易日志
因為很多人經(jīng)常遺忘交易日志,因此它也會給系統(tǒng)帶來一些問題。隨著系統(tǒng)的不斷運行,日志記錄的內(nèi)容會越來越多,日志文件的體積也會越來越大,最終導(dǎo)致可用磁盤空間不足。除非日常工作中經(jīng)常對日志進行清理,否則日志文件最終會侵占分區(qū)內(nèi)的全部可用空間。日志的默認(rèn)配置為不限容量,如果以這種配置工作,它就會不斷膨脹,最終也會占據(jù)全部可用空間。這兩種情況都會導(dǎo)致數(shù)據(jù)庫停止工作。
對交易日志的日常備份工作可以有效的防止日志文件過分消耗磁盤空間。備份過程會將日志中不再需要的部分截除。截除的方法是首先把舊記錄標(biāo)記為非活動狀態(tài),然后將新日志覆蓋到舊日志的位置上,這樣就可以防止交易日志的體積不斷膨脹。如果無法對日志進行經(jīng)常性的備份工作,最好將數(shù)據(jù)庫設(shè)置為“簡單恢復(fù)模式”。在這種模式下,系統(tǒng)會強制交易日志在每次記錄標(biāo)記點時,自動進行截除操作,以新日志覆蓋舊日志。
截除過程發(fā)生在備份或?qū)⑴f標(biāo)記點標(biāo)為非活動狀態(tài)時,它使得舊的交易記錄可以被覆蓋,但這并不會減少交易日志實際占用的磁盤空間。就算不再使用日志,它依然會占據(jù)一定的空間。因此在維護時,還需要對交易日志進行壓縮。壓縮交易日志的方法是刪除非活動記錄,從而減少日志文件所占用的物理硬盤空間。
通過使用DBCC SHRINKDATABASE語句可以壓縮當(dāng)前數(shù)據(jù)庫的交易日志文件,DBCC SHRINKFILE語句用來壓縮指定的交易日志文件,另外也可以在數(shù)據(jù)庫中激活自動壓縮操作。當(dāng)壓縮日志時,首先會將舊記錄標(biāo)記為非活動狀態(tài),然后將帶有非活動標(biāo)記的記錄徹底刪除。根據(jù)所使用的壓縮方式的不同,你可能不會立即看到結(jié)果。在理想情況下,壓縮工作應(yīng)該選在系統(tǒng)不是非常繁忙的時段進行,否則有可能影響數(shù)據(jù)庫性能。
恢復(fù)數(shù)據(jù)庫
交易記錄備份可以用來將數(shù)據(jù)庫恢復(fù)到某一指定狀態(tài),但交易記錄備份本身不足以完成恢復(fù)數(shù)據(jù)庫的 任務(wù),還需要備份的數(shù)據(jù)文件參與恢復(fù)工作?;謴?fù)數(shù)據(jù)庫時,首先進行的是數(shù)據(jù)文件的恢復(fù)工作。在整個數(shù)據(jù)文件恢復(fù)完成前,不要將其設(shè)為完成狀態(tài),否則交易日志就不會被恢復(fù)。當(dāng)數(shù)據(jù)文件恢復(fù)完成,系統(tǒng)會通過交易日志的備份將數(shù)據(jù)庫恢復(fù)成用戶希望的狀態(tài)。如果在數(shù)據(jù)庫最后一次備份后,存在多個日志文件的備份,備份程序會按照它們建立的時間依次將其恢復(fù)。
另一種被稱為log shipping的過程可以提供更強的數(shù)據(jù)庫備份能力。當(dāng)log shipping配置好后,它可以將數(shù)據(jù)庫整個復(fù)制到另一臺服務(wù)器上。在這種情況下,交易日志也會定期發(fā)送到備份服務(wù)器上供恢復(fù)數(shù)據(jù)使用。這使得服務(wù)器一直處于熱備份狀態(tài),當(dāng)數(shù)據(jù)發(fā)生改變時它也隨之更新。另一個服務(wù)器被稱作監(jiān)視(monitor)服務(wù)器,可以用來監(jiān)視按規(guī)定時間間隔發(fā)送的shipping信號。如果在規(guī)定時間內(nèi)沒有收到信號,監(jiān)視服務(wù)器會將這一事件記錄到事件日志。這種機制使得log shipping經(jīng)常成為災(zāi)難恢復(fù)計劃中使用的方案。
性能優(yōu)化
交易日志對數(shù)據(jù)庫有重要作用,同時它對系統(tǒng)的整體性能也有一定影響。通過幾個選項,我們可以對交易日志的性能進行優(yōu)化。由于交易日志是一個連續(xù)的磁盤寫入過程,在這當(dāng)中不會發(fā)生讀取動作。因此將日志文件放在一個獨立的磁盤,對優(yōu)化性能有一定作用。
另一項優(yōu)化措施與日志文件的體積有關(guān)。我們可以設(shè)置日志文件的體積不超過硬盤空間的百分之幾,或者確定它的大小。如果將其設(shè)置的過大會浪費磁盤空間,而如果設(shè)置的過小則會強制記錄文件不斷嘗試擴展,導(dǎo)致數(shù)據(jù)庫性能下降。
事務(wù)日志文件Transaction Log File是用來記錄數(shù)據(jù)庫更新情況的文件,擴展名為ldf。
在 SQL Server 7.0 和 SQL Server 2000 中,如果設(shè)置了自動增長功能,事務(wù)日志文件將會自動擴展。
一般情況下,在能夠容納兩次事務(wù)日志截斷之間發(fā)生的最大數(shù)量的事務(wù)時,事務(wù)日志的大小是穩(wěn)定的,事務(wù)日志截斷由檢查點或者事務(wù)日志備份觸發(fā)。
然而,在某些情況下,事務(wù)日志可能會變得非常大,以致用盡空間或變滿。通常,在事務(wù)日志文件占盡可用磁盤空間且不能再擴展時,您將收到如下錯誤消息:
Error:9002, Severity:17, State:2
The log file for database '%.*ls' is full.除了出現(xiàn)此錯誤消息之外,SQL Server 還可能因為缺少事務(wù)日志擴展空間而將數(shù)據(jù)庫標(biāo)記為 SUSPECT。有關(guān)如何從此情形中恢復(fù)的其他信息,請參見 SQL Server 聯(lián)機幫助中的“磁盤空間不足”主題。
另外,事務(wù)日志擴展可能導(dǎo)致下列情形:
· 非常大的事務(wù)日志文件。
· 事務(wù)可能會失敗并可能開始回滾。
· 事務(wù)可能會用很長時間才能完成。
· 可能發(fā)生性能問題。
· 可能發(fā)生阻塞現(xiàn)象。
原因
事務(wù)日志擴展可能由于以下原因或情形而發(fā)生:
· 未提交的事務(wù)
· 非常大的事務(wù)
· 操作:DBCC DBREINDEX 和 CREATE INDEX
· 在從事務(wù)日志備份還原時
· 客戶端應(yīng)用程序不處理所有結(jié)果
· 查詢在事務(wù)日志完成擴展之前超時,您收到假的“Log Full”錯誤消息
· 未復(fù)制的事務(wù)
日志文件滿而造成SQL數(shù)據(jù)庫無法寫入文件時,可用兩種方法:
一種方法:清空日志。
1.打開查詢分析器,輸入命令
DUMP TRANSACTION 數(shù)據(jù)庫名 WITH NO_LOG
2.再打開企業(yè)管理器--右鍵你要壓縮的數(shù)據(jù)庫--所有任務(wù)--收縮數(shù)據(jù)庫--收縮文件--選擇日志文件--在收縮方式里選擇收縮至XXM,這里會給出一個允許收縮到的最小M數(shù),直接輸入這個數(shù),確定就可以了。
另一種方法有一定的風(fēng)險性,因為SQL SERVER的日志文件不是即時寫入數(shù)據(jù)庫主文件的,如處理不當(dāng),會造成數(shù)據(jù)的損失。
1: 刪除LOG
分離數(shù)據(jù)庫 企業(yè)管理器->服務(wù)器->數(shù)據(jù)庫->右鍵->分離數(shù)據(jù)庫
2:刪除LOG文件
附加數(shù)據(jù)庫 企業(yè)管理器->服務(wù)器->數(shù)據(jù)庫->右鍵->附加數(shù)據(jù)庫
此法生成新的LOG,大小只有500多K。
注意:建議使用第一種方法。
如果以后,不想要它變大。
SQL2000下使用:
在數(shù)據(jù)庫上點右鍵->屬性->選項->故障恢復(fù)-模型-選擇-簡單模型。
或用SQL語句:
alter database 數(shù)據(jù)庫名 set recovery simple
另外,數(shù)據(jù)庫屬性有兩個選項,與事務(wù)日志的增長有關(guān):
Truncate log on checkpoint
(此選項用于SQL7.0,SQL 2000中即故障恢復(fù)模型選擇為簡單模型)
當(dāng)執(zhí)行CHECKPOINT 命令時如果事務(wù)日志文件超過其大小的70% 則將其內(nèi)容清除在開發(fā)數(shù)據(jù)庫時時常將此選項設(shè)置為True
Auto shrink
定期對數(shù)據(jù)庫進行檢查當(dāng)數(shù)據(jù)庫文件或日志文件的未用空間超過其大小的25%時,系統(tǒng)將會自動縮減文件使其未用空間等于25% 當(dāng)文件大小沒有超過其建立時的初始大小時不會縮減文件縮減后的文件也必須大于或等于其初始大小對事務(wù)日志文件的縮減只有在對其作備份時或?qū)runcate log on checkpoint 選項設(shè)為True 時才能進行。
注意:一般立成建立的數(shù)據(jù)庫默認(rèn)屬性已設(shè)好,但碰到意外情況使數(shù)據(jù)庫屬性被更改,請用戶清空日志后,檢查數(shù)據(jù)庫的以上屬性,以防事務(wù)日志再次充滿。
第四篇:SQLServer中獲取18位身份證號碼校驗碼的函數(shù)
在SQL Server中編寫獲取18位身份證的校驗碼函數(shù)
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER FUNCTION [dbo].[fn_getChkVal](@IDCardNo nvarchar(18))RETURNS nvarchar(1)AS BEGIN Declare @iSum integer,@iMod integer if len(@IDCardNo)<>18 return '' if LEFT(@IDCardNo,17)like '%[^0-9]%' RETURN ''--判斷1-17位是否為數(shù)字0-9,如果不是退出
set @iSum= cast(substring(@IDCardNo,1,1)as int)*7 set @iSum=@iSum+cast(substring(@IDCardNo,2,1)as int)*9 set @iSum=@iSum+cast(substring(@IDCardNo,3,1)as int)*10 set @iSum=@iSum+cast(substring(@IDCardNo,4,1)as int)*5 set @iSum=@iSum+cast(substring(@IDCardNo,5,1)as int)*8 set @iSum=@iSum+cast(substring(@IDCardNo,6,1)as int)*4 set @iSum=@iSum+cast(substring(@IDCardNo,7,1)as int)*2 set @iSum=@iSum+cast(substring(@IDCardNo,8,1)as int)*1 set @iSum=@iSum+cast(substring(@IDCardNo,9,1)as int)*6 set @iSum=@iSum+cast(substring(@IDCardNo,10,1)as int)*3 set @iSum=@iSum+cast(substring(@IDCardNo,11,1)as int)*7 set @iSum=@iSum+cast(substring(@IDCardNo,12,1)as int)*9 set @iSum=@iSum+cast(substring(@IDCardNo,13,1)as int)*10 set @iSum=@iSum+cast(substring(@IDCardNo,14,1)as int)*5 set @iSum=@iSum+cast(substring(@IDCardNo,15,1)as int)*8 set @iSum=@iSum+cast(substring(@IDCardNo,16,1)as int)*4 set @iSum=@iSum+cast(substring(@IDCardNo,17,1)as int)*2
set @iMod=@iSum % 11
return substring('10X98765432',@imod+1,1)END
第五篇:SqlServer教學(xué)大綱
《SQL Server2005案例教程》教學(xué)大綱
一、教學(xué)目的:
1.通過本門課程的學(xué)習(xí),使學(xué)員掌握數(shù)據(jù)庫的概念,安裝以及數(shù)據(jù)庫在程序設(shè)計中的重要地位和作用 2.理解關(guān)系型數(shù)據(jù)庫和表,約束,索引的創(chuàng)建
3.了解SQL語言基礎(chǔ)與使用SQL語言實現(xiàn)數(shù)據(jù)的查詢與更新 4.熟悉sqlserver的應(yīng)用環(huán)境及掌握常用的管理方法 5.掌握視圖,存儲過程,觸發(fā)器等數(shù)據(jù)庫對象的創(chuàng)建與使用 6.掌握數(shù)據(jù)庫的安全管理 7.掌握數(shù)據(jù)的備份與恢復(fù) 8.掌握數(shù)據(jù)的導(dǎo)入導(dǎo)出步驟
9.理解SqlServer下事務(wù)的概念,并能在實際應(yīng)用中合理的使用事務(wù)控制命令
二、教學(xué)重點:
1.數(shù)據(jù)庫基本概念
2.數(shù)據(jù)庫表,約束,索引的創(chuàng)建 3.使用SQL語言實現(xiàn)數(shù)據(jù)的查詢與更新 4.Select,update,delete,insert 5.index 6.constraint 7.view視圖
三、教學(xué)難點:
1.SqlServer體系結(jié)構(gòu)
2.SqlServer下事務(wù)的概念,并能在實際應(yīng)用中合理的使用事務(wù)控制 3.存儲過程 4.觸發(fā)器
四、教學(xué)內(nèi)容及學(xué)時分配
第1章、數(shù)據(jù)庫概述 6課時
第2章、SQL Server安裝及管理 4課時 第3章、數(shù)據(jù)庫及表的設(shè)計 4課時 第4章、T-ransact SQL語言基礎(chǔ) 6課時 第5章、T-ransact SQL數(shù)據(jù)查詢與更新 14課時 第6章、視圖 6課時 第7章、存儲過程 復(fù)習(xí)
5課時
4課時
第8章、觸發(fā)器
6課時 第9章、SQL安全 3第10章、數(shù)據(jù)備份與恢復(fù) 第11章、數(shù)據(jù)轉(zhuǎn)換
復(fù)習(xí)4
課時 4課時 2課時
課時 68課時