真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

sqlserver有斷言,sql 斷言

sqlserver啟動失敗

sqlserver服務(wù)管理器里的sqlserver服務(wù)選項啟動失敗

成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比施甸網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式施甸網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋施甸地區(qū)。費(fèi)用合理售后完善,十多年實體公司更值得信賴。

事件查看器錯誤描述如下:

按你說的,重新加載系統(tǒng)看看

SQLyogent.exe-應(yīng)用程序錯誤

錯誤原因分析:關(guān)注信號發(fā)送從 SQLServer 客戶端應(yīng)用程序因查詢超時可能導(dǎo)致 SQLServer 服務(wù)以意外退出

如果通過 SQLServer 客戶端應(yīng)用程序運(yùn)行查詢并且客戶端應(yīng)用程序關(guān)注信號發(fā)送到服務(wù)器是運(yùn)行 SQLServer 因查詢超時, SQLServer 服務(wù)可能會意外退出。

您可能會發(fā)現(xiàn), 它類似于以下 SQLServer 錯誤日志中錯誤消息:

2003 09 10 - 13:43:02.38 spid9 spid 9 tabid 197575742 clean_process 中找到活動 sdes

還可能發(fā)現(xiàn)之一下列行為, 根據(jù)并行是啟用還是的 SQLServer 實例上禁用。

1 行為

如果并行被啟用的 SQLServer 實例上可能發(fā)生斷言, 并且 SQLServer 服務(wù)可能意外退出。 您可能看到以下堆棧轉(zhuǎn)儲: Short Stack Dump

0x77f9741f Module(ntdll+1741f) (NtGetContextThread+b)

0x0078c44a Module(sqlservr+38c44a) (utassert_fail+1a0)

0x005bc329 Module(sqlservr+1bc329) (ExecutionContext::Cleanup+9e)

0x004cee07 Module(sqlservr+cee07) (ExecutionContext::Purge+46)

0x004ceb68 Module(sqlservr+ceb68) (stopsubprocess+e6)

0x004cd734 Module(sqlservr+cd734) (subproc_main+175)

0x41092cff Module(ums+2cff) (ProcessWorkRequests+102)

0x41093523 Module(ums+3523) (ThreadStartRoutine+139)

0x7800a27b Module(MSVCRT+a27b) (beginthread+ce)

0x77e8758a Module(KERNEL32+758a) (SetFilePointer+18a)

2003-09-10 13:28:04.99 kernel SQL Server Assertion: File: proc.c, line=1931

Failed Assertion = 'm_activeSdesList.Head () == NULL'.

2003-09-10 13:28:04.99 spid9 Using 'sqlimage.dll' version '4.0.5'

Dump thread - spid = 9, PSS = 0x413e70bc, EC = 0x4402c084

Stack Dump being sent to C:\MSSQL7\log\SQL00057.dmp

2 行為

如果 SQLServer, 的實例上禁用并行 SQLServer 服務(wù)可能繼續(xù)要運(yùn)行。 但是, 可能發(fā)現(xiàn)所類似如下 SQLServer 錯誤日志文件中的錯誤消息:

2003 09 10 - 13:43:02.38 spid9 spid 9 tabid 197575742 clean_process 中找到活動 sdes

2003 09 10 - 13:43:09.37 spid10 spid 10 tabid 197575742 clean_process 中找到活動 sdes

2003 09 10 - 13:43:09.37 spid9 spid 9 tabid 197575742 clean_process 中找到活動 sdes

2003 09 10 - 13:43:09.40 spid8 spid 8 tabid 197575742 clean_process 中找到活動 sdes

無法 Ctrl+C C - Ctrl+C Break 信號 2003 09 10 - 13:43:23.40 內(nèi)核 SQLServer 關(guān)閉。

3 行為

如果 SQLServer 客戶端應(yīng)用程序運(yùn)行存儲過程通過包含問題查詢禁用遠(yuǎn)程過程調(diào)用 (RPC) 和查詢并行, SQLServer 服務(wù)可能會意外退出。 您可能看到所類似如下 SQLServer 錯誤日志文件中的錯誤消息:

2003 09 10 - 13:36:17.66 spid9 spid 9 tabid 197575742 clean_process 中找到活動 sdes

成為無主郵箱解除 2003 09 10 - spid9 9 進(jìn)程鎖定 13:36:17.66) 資源: Tab 8:197575742 ]:

使用'4.0.5''sqlimage.dll'版本 2003 09 10 - 13:36:17.66 spid9

2003 09 10 - 13:36:18.82 spid10 spid 10 tabid 197575742 clean_process 中找到活動 sdes

成為無主郵箱解除 2003 09 10 - spid10 10 進(jìn)程鎖定 13:36:18.82) 資源: Tab 8:197575742 ]:

2003 09 10 - 13:36:20.73 spid8 spid 8 tabid 197575742 clean_process 中找到活動 sdes

成為無主郵箱解除 2003 09 10 - spid8 8 進(jìn)程鎖定 13:36:20.73) 資源: Tab 8:197575742 ]:

轉(zhuǎn)儲線程 - spid = 9, PSS = 0x4139d0bc, EC = 0x4139d26c

堆棧轉(zhuǎn)儲發(fā)送到 C:\MSSQL7\log\SQL00060.dmp

也可能會看到, 它類似于以下堆棧轉(zhuǎn)儲: Short Stack Dump

0x77f9741f Module(ntdll+1741f) (NtGetContextThread+b)

0x005bcdd4 Module(sqlservr+1bcdd4) (ex_raise2+35c)

0x004f8616 Module(sqlservr+f8616) (ex_raise+5f)

0x006e1cf5 Module(sqlservr+2e1cf5) (reportUnlockFailure+8f)

0x005abaa3 Module(sqlservr+1abaa3) (lck_unlock+120)

0x0040c45a Module(sqlservr+c45a) (RowsetLockCache::ReleaseRowsetLock+72)

0x0040341a Module(sqlservr+341a) (closetable+134)

0x005b9bbd Module(sqlservr+1b9bbd) (clean_process+f5)

0x0042b5b6 Module(sqlservr+2b5b6) (execrpc+7b3)

0x4106256e Module(opends60+256e) (execute_rpc+421)

0x4106127c Module(opends60+127c) (execute_event+21a)

0x4106142f Module(opends60+142f) (process_commands+107)

0x41092cff Module(ums+2cff) (ProcessWorkRequests+102)

0x41093523 Module(ums+3523) (ThreadStartRoutine+139)

0x7800a27b Module(MSVCRT+a27b) (beginthread+ce)

0x77e8758a Module(KERNEL32+758a) (SetFilePointer+18a)

Dump thread - spid = 8, PSS = 0x413970bc, EC = 0x4139726c

Stack Dump being sent to C:\MSSQL7\log\SQL00061.dmp

(不看也罷)

解決方案

現(xiàn)在支持修補(bǔ)程序可從 Microsoft, 但它是僅用于糾正問題, 本文介紹。 它僅適用于系統(tǒng)是經(jīng)歷此特定問題。

要解決此問題, 請與 Microsoft 產(chǎn)品支持服務(wù)以獲取此修復(fù)程序。 有關(guān) Microsoft 產(chǎn)品支持服務(wù)電話號碼和支持費(fèi)用, 信息的完整列表請訪問 Microsoft Web 站點:

()

注意 在特殊情況下, 如果 Microsoft 支持專家確定該特定更新將解決問題可能是免, 是正常收取支持電話費(fèi)用。 通常支持成本將應(yīng)用于其他支持問題和問題做不符合特定更新問題。

英文版的此修補(bǔ)程序具有文件屬性如下表中列出 (或更高版本)。 協(xié)調(diào)通用時間 (UTC) 中列出的這些文件日期和時間。 當(dāng)您查看文件信息, 將轉(zhuǎn)換為本地時間。 要查找 UTC 與本地時間, 區(qū)別控制面板中日期和時間工具中使用 時區(qū) 選項卡。 Date Time Version Size File name

------------------------------------------------------------------

04-Oct-2002 23:59 7.00.1081 28,944 Dbmssocn.dll

06-Sep-2002 23:55 7.00.1077 53,520 Distrib.exe

06-Sep-2002 23:55 7.00.1077 98,576 Logread.exe

05-May-2003 18:34 54,904 Opends60.dbg

05-May-2003 18:34 7.00.1093 155,920 Opends60.dll

06-Sep-2002 23:56 7.00.1077 250,128 Rdistcom.dll

06-Sep-2002 23:55 7.00.1077 82,192 Replmerg.exe

06-Sep-2002 23:56 7.00.1077 78,096 Replres.dll

17-Sep-2002 22:52 7,941 Securityhotfix.sql

06-Sep-2002 23:56 7.00.1077 160,016 Snapshot.exe

30-May-2003 04:21 59,214 Sp4_serv_uni.sql

15-Jan-2003 01:33 7.00.1085 344,064 Sqlagent.exe

06-Sep-2002 23:55 7.00.1077 45,056 Sqlcmdss.dll

16-May-2003 00:18 7.00.1094 2,629,632 Sqldmo.dll

16-May-2003 13:29 7.00.1094 81,920 Sqlmap70.dll

03-Oct-2003 01:30 7.00.1143 5,062,928 Sqlservr.exe

04-Oct-2002 23:59 7.00.1081 45,328 Ssmsso70.dll

16-May-2003 00:18 7.00.1094 24,848 Ssnmpn70.dll

26-Sep-2002 20:30 28,408 Ums.dbg

26-Sep-2002 20:27 7.00.1079 57,616 Ums.dll

16-May-2003 13:31 7.00.1094 151,552 Xpweb70.dll

還 注意 由于文件相關(guān)性, 的最新修復(fù)程序包含這些文件可能包含其他文件。

回到頂端

替代方法

要解決此問題, 必須增加查詢超時期限。 若要這樣, 請使用 SQLServer 中查詢等待選項。

有關(guān)查詢等待選項, 請訪問以下 Microsoft 網(wǎng)站:

()

回到頂端

狀態(tài)

Microsoft 已確認(rèn)這是列出了本文 " 適用于 " 一節(jié)中 Microsoft 產(chǎn)品中存在問題。

回到頂端

參考

有關(guān)軟件更新, 請單擊下列文章編號以查看 Microsoft 知識庫中相應(yīng):

824684 () 是, 用于描述 Microsoft 軟件更新標(biāo)準(zhǔn)術(shù)語描述

有關(guān) SQLServer, 中 maxdegreeofparallelism 選項請訪問以下 Microsoft 網(wǎng)站:

()

好復(fù)雜?。。。。。?!

也可訪問:

DB2和其他數(shù)據(jù)庫在一些SQL語法上的區(qū)別?

Access是一種桌面數(shù)據(jù)庫,只適合數(shù)據(jù)量少的應(yīng)用,在處理少量數(shù)據(jù)和單機(jī)訪問的數(shù)據(jù)庫時是很好的,效率也很高。但是它的同時訪問客戶端不能多于4個。access數(shù)據(jù)庫有一定的極限,如果數(shù)據(jù)達(dá)到100M左右,很容易造成服務(wù)器iis假死,或者消耗掉服務(wù)器的內(nèi)存導(dǎo)致服務(wù)器崩潰。

SQL Server是基于服務(wù)器端的中型的數(shù)據(jù)庫,可以適合大容量數(shù)據(jù)的應(yīng)用,在功能上管理上也要比Access要強(qiáng)得多。在處理海量數(shù)據(jù)的效率,后臺開發(fā)的靈活性,可擴(kuò)展性等方面強(qiáng)大。因為現(xiàn)在數(shù)據(jù)庫都使用標(biāo)準(zhǔn)的SQL語言對數(shù)據(jù)庫進(jìn)行管理,所以如果是標(biāo)準(zhǔn)SQL語言,兩者基本上都可以通用的。SQL Server還有更多的擴(kuò)展,可以用存儲過程,數(shù)據(jù)庫大小無極限限制。

mysql2000和sql2000數(shù)據(jù)庫的區(qū)別

1.根本的區(qū)別是它們遵循的基本原則

二者所遵循的基本原則是它們的主要區(qū)別:開放vs保守。SQL服務(wù)器的狹隘的,保守的存儲引擎與MySQL服務(wù)器的可擴(kuò)展,開放的存儲引擎絕然不同。雖然你可以使用SQL服務(wù)器的Sybase引擎,但MySQL能夠提供更多種的選擇,如MyISAM, Heap, InnoDB, and Berkeley DB。MySQL不完全支持陌生的關(guān)鍵詞,所以它比SQL服務(wù)器要少一些相關(guān)的數(shù)據(jù)庫。同時,MySQL也缺乏一些存儲程序的功能,比如MyISAM引擎聯(lián)支持交換功能。

2.性能:先進(jìn)的MySQL

純粹就性能而言,MySQL是相當(dāng)出色的,因為它包含一個缺省桌面格式MyISAM。MyISAM 數(shù)據(jù)庫與磁盤非常地兼容而不占用過多的CPU和內(nèi)存。MySQL可以運(yùn)行于Windows系統(tǒng)而不會發(fā)生沖突,在UNIX或類似UNIX系統(tǒng)上運(yùn)行則更好。你還可以通過使用64位處理器來獲取額外的一些性能。因為MySQL在內(nèi)部里很多時候都使用64位的整數(shù)處理。Yahoo!商業(yè)網(wǎng)站就使用MySQL作為后臺數(shù)據(jù)庫。

當(dāng)提及軟件的性能,SQL服務(wù)器的穩(wěn)定性要比它的競爭對手強(qiáng)很多。但是,這些特性也要付出代價的。比如,必須增加額外復(fù)雜操作,磁盤存儲,內(nèi)存損耗等等。如果你的硬件和軟件不能充分支持SQL服務(wù)器,我建議你最好選擇其他如DBMS數(shù)據(jù)庫,因為這樣你會得到更好的結(jié)果。

3.發(fā)行費(fèi)用:MySQL不全是免費(fèi),但很便宜

當(dāng)提及發(fā)行的費(fèi)用,這兩個產(chǎn)品采用兩種絕然不同的決策。對于SQL服務(wù)器,獲取一個免費(fèi)的開發(fā)費(fèi)用最常的方式是購買微軟的Office或者Visual Studio的費(fèi)用。但是,如果你想用于商業(yè)產(chǎn)品的開發(fā),你必須還要購買SQL Server Standard Edition。學(xué)?;蚍勤A利的企業(yè)可以不考慮這一附加的費(fèi)用。

4.安全功能

MySQL有一個用于改變數(shù)據(jù)的二進(jìn)制日志。因為它是二進(jìn)制,這一日志能夠快速地從主機(jī)上復(fù)制數(shù)據(jù)到客戶機(jī)上。即使服務(wù)器崩潰,這一二進(jìn)制日志也會保持完整,而且復(fù)制的部分也不會受到損壞。

在SQL服務(wù)器中,你也可以記錄SQL的有關(guān)查詢,但這需要付出很高的代價。

安全性

這兩個產(chǎn)品都有自己完整的安全機(jī)制。只要你遵循這些安全機(jī)制,一般程序都不會出現(xiàn)什么問題。這兩者都使用缺省的IP端口,但是有時候很不幸,這些IP也會被一些黑客闖入。當(dāng)然,你也可以自己設(shè)置這些IP端口。

恢復(fù)性:先進(jìn)的SQL服務(wù)器

恢復(fù)性也是MySQL的一個特點,這主要表現(xiàn)在MyISAM配置中。這種方式有它固有的缺欠,如果你不慎損壞數(shù)據(jù)庫,結(jié)果可能會導(dǎo)致所有的數(shù)據(jù)丟失。然而,對于SQL服務(wù)器而言就表現(xiàn)得很穩(wěn)鍵。SQL服務(wù)器能夠時刻監(jiān)測數(shù)據(jù)交換點并能夠把數(shù)據(jù)庫損壞的過程保存下來。

Oracle和SQL Server之間的區(qū)別,已經(jīng)有很多篇文章從企業(yè)的角度和數(shù)據(jù)庫管理員的角度出發(fā)描寫了兩者之間的一般差別。在這篇文章里面,我將會從應(yīng)用程序的角度向你描述SQL erver 和oracle平臺之間的區(qū)別,并且將會討論開發(fā)不依賴于數(shù)據(jù)庫環(huán)境的應(yīng)用程序的幾種可能的方法。與此同時,我不會再論討對于應(yīng)用程序來說,兩個平臺之間顯而易見的區(qū)別,例如表的分割和索引。

定義通用接口和語言有很少的幾種通用語言和接口可以讓應(yīng)用程序不依賴于數(shù)據(jù)庫,想來也可以以同樣的方式應(yīng)用在關(guān)系型數(shù)據(jù)庫上面: ANSI是美國國家標(biāo)準(zhǔn)局定義的,這是一家志愿者成員的組織(用私人基金運(yùn)轉(zhuǎn)),他們在有關(guān)設(shè)備和程序等廣泛領(lǐng)域內(nèi)開發(fā)了國家承認(rèn)的標(biāo)準(zhǔn)。在數(shù)據(jù)庫領(lǐng)域,ANSI定義了編寫SQL命令的標(biāo)準(zhǔn),假設(shè)命令可以運(yùn)行在任何的數(shù)據(jù)庫上,而不需要更改命令的語法。ODBC是開放數(shù)據(jù)庫連接(ODBC)接口,微軟定義的,它可以讓應(yīng)用程序訪問數(shù)據(jù)庫管理系統(tǒng)(DBMS)中的數(shù)據(jù),使用SQL作為訪問數(shù)據(jù)的標(biāo)準(zhǔn)。ODBC允許最大的互聯(lián)性,這意味著一個單個的應(yīng)用程序可以訪問不同的數(shù)據(jù)庫管理系統(tǒng)。然后,應(yīng)用程序終端用戶可以添加開放數(shù)據(jù)庫連接(ODBC)數(shù)據(jù)庫驅(qū)動來將應(yīng)用程序與他們所選擇的數(shù)據(jù)庫管理系統(tǒng)鏈接上。 OLE DB是ODBC的繼承者,是一組允許例如基于VB、C++、Access等任何可以連接到類似SQL Server、Oracle、DB2、MySQL等后臺的“前臺”的軟件組件。在許多種情況下,OLE DB組件都比原有的ODBC提供了好得多的性能。 JDBC(Java數(shù)據(jù)庫連接)應(yīng)用程序接口是Java編程語言和廣泛范圍的數(shù)據(jù)庫,SQL數(shù)據(jù)庫和其他表列數(shù)據(jù)源(例如電子表格或者普通文本文件)之間,進(jìn)行不依賴于數(shù)據(jù)庫的連接的行業(yè)標(biāo)準(zhǔn)。JDBD應(yīng)用程序接口為基于SQL的數(shù)據(jù)庫訪問提供了調(diào)用級別的應(yīng)用程序接口。真實世界中的通用接口不幸的是,并不是所有數(shù)據(jù)庫級別的命令都是ANSI,每個數(shù)據(jù)庫平臺都有自己的擴(kuò)展功能。對于ANSI或者通用接口,一般來說都代表著幾本功能,因此也可能意味著喪失了性能方面的競爭力。對于小型數(shù)據(jù)庫和小型應(yīng)用程序來說,要維護(hù)對數(shù)據(jù)庫的通用訪問是簡單的,但是當(dāng)數(shù)據(jù)庫和/或應(yīng)用程序變得越來越大,越來越復(fù)雜,你就不得不向代碼中添加功能。

SQL Server和Oracle的常用函數(shù)對比

---------數(shù)學(xué)函數(shù)

1.絕對值

S:select abs(-1) value

O:select abs(-1) value from dual

2.取整(大)

S:select ceiling(-1.001) value

O:select ceil(-1.001) value from dual

3.取整(?。?/p>

S:select floor(-1.001) value

O:select floor(-1.001) value from dual

4.取整(截取)

S:select cast(-1.002 as int) value

O:select trunc(-1.002) value from dual

5.四舍五入

S:select round(1.23456,4) value 1.23460

O:select round(1.23456,4) value from dual 1.2346

6.e為底的冪

S:select Exp(1) value 2.7182818284590451

O:select Exp(1) value from dual 2.71828182

7.取e為底的對數(shù)

S:select log(2.7182818284590451) value 1

O:select ln(2.7182818284590451) value from dual; 1

8.取10為底對數(shù)

S:select log10(10) value 1

O:select log(10,10) value from dual; 1

9.取平方

S:select SQUARE(4) value 16

O:select power(4,2) value from dual 16

10.取平方根

S:select SQRT(4) value 2

O:select SQRT(4) value from dual 2

11.求任意數(shù)為底的冪

S:select power(3,4) value 81

O:select power(3,4) value from dual 81

12.取隨機(jī)數(shù)

S:select rand() value

O:select sys.dbms_random.value(0,1) value from dual;

13.取符號

S:select sign(-8) value -1

O:select sign(-8) value from dual -1

----------三角函數(shù)相關(guān)

14.圓周率

S:SELECT PI() value 3.1415926535897931

O:不知道

15.sin,cos,tan 參數(shù)都以弧度為單位

例如:select sin(PI()/2) value 得到1(SQLServer)

16.Asin,Acos,Atan,Atan2 返回弧度

17.弧度角度互換(SQLServer,Oracle不知道)

DEGREES:弧度-〉角度

RADIANS:角度-〉弧度

---------數(shù)值間比較

18. 求集合最大值

S:select max(value) value from

(select 1 value

union

select -2 value

union

select 4 value

union

select 3 value)a

O:select greatest(1,-2,4,3) value from dual

19. 求集合最小值

S:select min(value) value from

(select 1 value

union

select -2 value

union

select 4 value

union

select 3 value)a

O:select least(1,-2,4,3) value from dual

20.如何處理null值(F2中的null以10代替)

S:select F1,IsNull(F2,10) value from Tbl

O:select F1,nvl(F2,10) value from Tbl

--------字符串函數(shù)

21.求字符序號

S:select ascii('a') value

O:select ascii('a') value from dual

22.從序號求字符

S:select char(97) value

O:select chr(97) value from dual

23.連接

S:select '11'+'22'+'33' value

O:select CONCAT('11','22')||33 value from dual

23.子串位置 --返回3

S:select CHARINDEX('s','sdsq',2) value

O:select INSTR('sdsq','s',2) value from dual

23.模糊子串的位置 --返回2,參數(shù)去掉中間%則返回7

// 本文轉(zhuǎn)自 C++Builder 研究 - [url][/url]

S:select patindex('%d%q%','sdsfasdqe') value

O:oracle沒發(fā)現(xiàn),但是instr可以通過第四個參數(shù)控制出現(xiàn)次數(shù)

select INSTR('sdsfasdqe','sd',1,2) value from dual 返回6

24.求子串

S:select substring('abcd',2,2) value

O:select substr('abcd',2,2) value from dual

25.子串代替 返回aijklmnef

S:SELECT STUFF('abcdef', 2, 3, 'ijklmn') value

O:SELECT Replace('abcdef', 'bcd', 'ijklmn') value from dual

26.子串全部替換

S:Replace

O:select Translate('fasdbfasegas','fa','我' ) value from dual

27.長度

S:len,datalength

O:length

28.大小寫轉(zhuǎn)換 lower,upper

29.單詞首字母大寫

S:沒發(fā)現(xiàn)

O:select INITCAP('abcd dsaf df') value from dual

30.左補(bǔ)空格(LPAD的第一個參數(shù)為空格則同space函數(shù))

S:select space(10)+'abcd' value

O:select LPAD('abcd',14) value from dual

31.右補(bǔ)空格(RPAD的第一個參數(shù)為空格則同space函數(shù))

S:select 'abcd'+space(10) value

O:select RPAD('abcd',14) value from dual

32.刪除空格

S:ltrim,rtrim

O:ltrim,rtrim,trim

33. 重復(fù)字符串

S:select REPLICATE('abcd',2) value

O:沒發(fā)現(xiàn)

34.發(fā)音相似性比較(這兩個單詞返回值一樣,發(fā)音相同)

S:SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe')

O:SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe') from dual

SQLServer中用SELECT DIFFERENCE('Smithers', 'Smythers') 比較soundex的差

返回0-4,4為同音,1最高

--------------日期函數(shù)

35.系統(tǒng)時間

S:select getdate() value

O:select sysdate value from dual

36.前后幾日

直接與整數(shù)相加減

37.求日期

S:select convert(char(10),getdate(),20) value

O:select trunc(sysdate) value from dual

select to_char(sysdate,'yyyy-mm-dd') value from dual

38.求時間

S:select convert(char(8),getdate(),108) value

O:select to_char(sysdate,'hh24:mm:ss') value from dual

39.取日期時間的其他部分

S:DATEPART 和 DATENAME 函數(shù) (第一個參數(shù)決定)

O:to_char函數(shù) 第二個參數(shù)決定

參數(shù)---------------------------------下表需要補(bǔ)充

year yy, yyyy

quarter qq, q (季度)

month mm, m (m O無效)

dayofyear dy, y (O表星期)

day dd, d (d O無效)

week wk, ww (wk O無效)

weekday dw (O不清楚)

Hour hh,hh12,hh24 (hh12,hh24 S無效)

minute mi, n (n O無效)

second ss, s (s O無效)

millisecond ms (O無效)

----------------------------------------------

40.當(dāng)月最后一天

S:不知道

O:select LAST_DAY(sysdate) value from dual

41.本星期的某一天(比如星期日)

S:不知道

O:SELECT Next_day(sysdate,7) vaule FROM DUAL;

42.字符串轉(zhuǎn)時間

S:可以直接轉(zhuǎn)或者select cast('2004-09-08'as datetime) value

O:SELECT To_date('2004-01-05 22:09:38','yyyy-mm-dd hh24-mi-ss') vaule FROM DUAL;

43.求兩日期某一部分的差(比如秒)

S:select datediff(ss,getdate(),getdate()+12.3) value

O:直接用兩個日期相減(比如d1-d2=12.3)

SELECT (d1-d2)*24*60*60 vaule FROM DUAL;

44.根據(jù)差值求新的日期(比如分鐘)

S:select dateadd(mi,8,getdate()) value

O:SELECT sysdate+8/60/24 vaule FROM DUAL;

45.求不同時區(qū)時間

S:不知道

O:SELECT New_time(sysdate,'ydt','gmt' ) vaule FROM DUAL;

-----時區(qū)參數(shù),北京在東8區(qū)應(yīng)該是Ydt-------

AST ADT 大西洋標(biāo)準(zhǔn)時間

BST BDT 白令海標(biāo)準(zhǔn)時間

CST CDT 中部標(biāo)準(zhǔn)時間

EST EDT 東部標(biāo)準(zhǔn)時間

GMT 格林尼治標(biāo)準(zhǔn)時間

HST HDT 阿拉斯加—夏威夷標(biāo)準(zhǔn)時間

MST MDT 山區(qū)標(biāo)準(zhǔn)時間

NST 紐芬蘭標(biāo)準(zhǔn)時間

PST PDT 太平洋標(biāo)準(zhǔn)時間

YST YDT YUKON標(biāo)準(zhǔn)時間

Oracle支持的字符函數(shù)和它們的Microsoft SQL Server等價函數(shù):

函數(shù) Oracle Microsoft SQL Server

把字符轉(zhuǎn)換為ASCII ASCII ASCII

字串連接 CONCAT (expression + expression)

把ASCII轉(zhuǎn)換為字符 CHR CHAR

返回字符串中的開始字符(左起) INSTR CHARINDEX

把字符轉(zhuǎn)換為小寫 LOWER LOWER

把字符轉(zhuǎn)換為大寫 UPPER UPPER

填充字符串的左邊 LPAD N/A

清除開始的空白 LTRIM LTRIM

清除尾部的空白 RTRIM RTRIM

字符串中的起始模式(pattern) INSTR PATINDEX

多次重復(fù)字符串 RPAD REPLICATE

字符串的語音表示 SOUNDEX SOUNDEX

重復(fù)空格的字串 RPAD SPACE

從數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換為字符數(shù)據(jù) TO_CHAR STR

子串 SUBSTR SUBSTRING

替換字符 REPLACE STUFF

將字串中的每個詞首字母大寫 INITCAP N/A

翻譯字符串 TRANSLATE N/A

字符串長度 LENGTH DATELENGTH or LEN

列表中最大的字符串 GREATEST N/A

列表中最小的字符串 LEAST N/A

如果為NULL則轉(zhuǎn)換字串 NVL ISNULL

日期函數(shù)

函數(shù) Oracle Microsoft SQL Server

日期相加 (date column +/- value) or

ADD_MONTHS DATEADD

兩個日期的差 (date column +/- value) or

MONTHS_BETWEEN DATEDIFF

當(dāng)前日期和時間 SYSDATE GETDATE()

一個月的最后一天 LAST_DAY N/A

時區(qū)轉(zhuǎn)換 NEW_TIME N/A

日期后的第一個周日 NEXT_DAY N/A

代表日期的字符串 TO_CHAR DATENAME

代表日期的整數(shù) TO_NUMBER

(TO_CHAR)) DATEPART

日期舍入 ROUND CONVERT

日期截斷 TRUNC CONVERT

字符串轉(zhuǎn)換為日期 TO_DATE CONVERT

如果為NULL則轉(zhuǎn)換日期 NVL ISNULL

轉(zhuǎn)換函數(shù)

函數(shù) Oracle Microsoft SQL Server

數(shù)字轉(zhuǎn)換為字符 TO_CHAR CONVERT

字符轉(zhuǎn)換為數(shù)字 TO_NUMBER CONVERT

日期轉(zhuǎn)換為字符 TO_CHAR CONVERT

字符轉(zhuǎn)換為日期 TO_DATE CONVERT

16進(jìn)制轉(zhuǎn)換為2進(jìn)制 HEX_TO_RAW CONVERT

2進(jìn)制轉(zhuǎn)換為16進(jìn)制 RAW_TO_HEX CONVERT

其它行級別的函數(shù)

函數(shù) Oracle Microsoft SQL Server

返回第一個非空表達(dá)式 DECODE COALESCE

當(dāng)前序列值 CURRVAL N/A

下一個序列值 NEXTVAL N/A

如果exp1 = exp2, 返回null DECODE NULLIF

用戶登錄賬號ID數(shù)字 UID SUSER_ID

用戶登錄名 USER SUSER_NAME

用戶數(shù)據(jù)庫ID數(shù)字 UID USER_ID

用戶數(shù)據(jù)庫名 USER USER_NAME

當(dāng)前用戶 CURRENT_USER CURRENT_USER

用戶環(huán)境(audit trail) USERENV N/A

在CONNECT BY子句中的級別 LEVEL N/A

合計函數(shù)

函數(shù) Oracle Microsoft SQL Server

Average AVG AVG

Count COUNT COUNT

Maximum MAX MAX

Minimum MIN MIN

Standard deviation STDDEV STDEV or STDEVP

Summation SUM SUM

Variance VARIANCE VAR or VARP

Oracle還有一個有用的函數(shù)EXTRACT,提取并且返回日期時間或時間間隔表達(dá)式中特定的時間域:

EXTRACT(YEAR FROM 日期)

數(shù)據(jù)完整性約束的數(shù)據(jù)完整性約束:

1 數(shù)據(jù)的完整性

約束是用來確保數(shù)據(jù)的準(zhǔn)確性和一致性。數(shù)據(jù)的完整性就是對數(shù)據(jù)的準(zhǔn)確性和一致性的一種保證。

數(shù)據(jù)完整性(Data Integrity)是指數(shù)據(jù)的精確(Accuracy)和可靠性(Reliability)。

分為以下四類:

1) 實體完整性:規(guī)定表的每一行在表中是惟一的實體。

2) 域完整性:是指表中的列必須滿足某種特定的數(shù)據(jù)類型約束,其中約束又包括取值范圍、精度等規(guī)定。

3) 參照完整性:是指兩個表的主關(guān)鍵字和外關(guān)鍵字的數(shù)據(jù)應(yīng)一致,保證了表之間的數(shù)據(jù)的一致性,防止了數(shù)據(jù)丟失或無意義的數(shù)據(jù)在數(shù)據(jù)庫中擴(kuò)散。

4) 用戶定義的完整性:不同的關(guān)系數(shù)據(jù)庫系統(tǒng)根據(jù)其應(yīng)用環(huán)境的不同,往往還需要一些特殊的約束條件。用戶定義的完整性即是針對某個特定關(guān)系數(shù)據(jù)庫的約束條件,它反映某一具體應(yīng)用必須滿足的語義要求。

2 完整性約束的類型:

可分為三種類型:與表有關(guān)的約束、域(Domain)約束、斷言(Assertion)

1) 與表有關(guān)的約束:是表中定義的一種約束??稍诹卸x時定義該約束,此時稱為列約束,也可以在表定義時定義約束,此時稱為表約束。

2) 域(Domain)約束:在域定義中被定義的一種約束,它與在特定域中定義的任何列都有關(guān)系。

3) 斷言(Assertion):在斷言定義時定義的一種約束,它可以與一個或多個表進(jìn)行關(guān)聯(lián)。

一、 與表有關(guān)的約束:包括列約束(表約束+NOT NULL)和表約束(PRIMARY KEY、foreign key、check、UNIQUE) 。

(1) not null(非空)約束: 只用于定義列約束。

語法如下:

Colunm_name datatype | domain not null

實例:

create table Employee

(

emp_id int not null,

emp_name varchar(10) not null,

address varchar(40) ,

)

創(chuàng)建之后,如果往表Employee表中非空約束中插入空值,insert into Employee values(1,null,'neimeng')將會出錯。如下:

Msg 515, Level 16, State 2, Line 1

Cannot insert the value NULL into column 'emp_name', table 'Student.dbo.Employee';

column does not allow nulls. INSERT fails.

The statement has been terminated.

(2) unique(惟一)約束:用于指明創(chuàng)建惟一約束的列上的取值必須惟一。

語法如下:

Colunm_name datatype | domain unique

實例:

create table EmployeeInfo

(

emp_id int not null,

emp_name varchar(10) not null,

phone char(11) unique,

address varchar(40) ,

)

如下往EmployeeInfo插入數(shù)據(jù)時,如果兩條記錄的phone不惟一,

insert into EmployeeInfo values(1,'abcdwxc','neimeng','13612345678')

insert into EmployeeInfo values(2,'terry','neimeng','13612345678')

則會出現(xiàn)錯誤。如下:

(1 row(s) affected)

Msg 2627, Level 14, State 1, Line 2

Violation of UNIQUE KEY constraint 'UQ__EmployeeInfo__060DEAE8'. Cannot insert duplicate key in object 'dbo.EmployeeInfo'.

The statement has been terminated.

除了在定義列時添加unique約束外,也可以將unique約束作為表約束添加。即把它作為表定義的元素。

語法如下:

[CONSTRAINT constraint_name] unique (column1,column2,.....)

實例:

create table EmployeeInfo

(

emp_id int not null,

emp_name varchar(10) not null,

phone char(11)

address varchar(40) ,

constraint p_uniq unique(phone)

)

(3) primary key(主鍵)約束:用于定義基本表的主鍵,起惟一標(biāo)識作用,其值不能為null,也不能重復(fù),以此來保證實體的完整性。

語法如下:

Colunm_name datatype | domain primary key

實例:

drop table EmployeeInfo

create table EmployeeInfo

(

emp_id int primary key,

emp_name varchar(10) not null,

phone char(11),

address varchar(40) ,

)

如果向EmployeeInfo表插入的emp_id重復(fù)了或者插入時emp_id為null值,則會出錯。

可以在創(chuàng)建表時,創(chuàng)建主鍵約束,也可創(chuàng)建表完成以后,創(chuàng)建主鍵,例如:

alter table EmployeeInfo

add constraint e_prim primary key(emp_id)

primary key 與 unique的區(qū)別:

1.在一個表中,只能定義一個primary key約束,但可定義多個unique約束。

2.對于指定為primary key的一個列或多個列的組合,其中任何一個列都不能出現(xiàn)空值,而對于unique所約束的惟一鍵,則允許為null,只是null值最多有一個。

(4) foreign key(外鍵)約束:定義了一個表中數(shù)據(jù)與另一個表中的數(shù)據(jù)的聯(lián)系。

foreign key約束指定某一個列或一組列作為外部鍵,其中包含外部鍵的表稱為子表,包含外部鍵所引用的主鍵的表稱為父表。系統(tǒng)保證,表在外部鍵上的取值要么是父表中某一主鍵,要么取空值,以此保證兩個表之間的連接,確保了實體的參照完整性。

語法如下:

Colunm_name datetype | domain references table_name(column)

[match full|partial|simple] //注:sqlserver不支持。

[referential triggered action]

說明:table_name為父表的表名,column為父表中與外鍵對應(yīng)的主鍵值。

[match full|partial|simple]為可選子句,用于設(shè)置如何處理外鍵中的null值。

[referential triggered action]也為可選子句,用于設(shè)置更新、刪除外鍵列時的操作準(zhǔn)則。

可以為表的一列或多列創(chuàng)建foreign key 約束,如果為多列創(chuàng)建 foreign key約束,將分別與主表中的相應(yīng)主鍵相對應(yīng)。

實例:

create table EmployeeInfo

(

emp_id int primary key,

emp_name varchar(10) not null,

account char(4) primary key,

phone char(11)

address varchar(40) ,

)

create table Emp_Sal

(

emp_id int , account CHAR(4) ,salary DECIMAL(5,1),

CONSTRAINT E_SAL FOREIGN KEY(emp_id,account) REFERENCES EmployeeInfo (emp_id,account))

)

也可以表創(chuàng)建以后添加到表上。如下:

create table Emp_Sal

(

emp_id int ,emp_name varchar(10) not null, account CHAR(4) ,salary DECIMAL(5,1),

)

alter table Emp_Sal

add CONSTRAINT E_SAL FOREIGN KEY(emp_id,account) REFERENCES EmployeeInfo (emp_id,account)

該外鍵的作用:確保表Emp_Sal的每個emp_id列都對應(yīng)表EmployeeInfo中相應(yīng)的emp_id。此時,表EmployeeInfo為父表,而表Emp_Sal為子表。子表的emp_id列參照父表的emp_id列。

如果想在子表的emp_id列插入一個值,首先父表的emp_id列必須存在,否則會插入失敗。如果想從父表的emp_id刪除一個值,則必須無刪除子表emp_id列中所有與之對應(yīng)的值。

(注:foreign key 列上的取值可以取null)。

潛在問題:由于foreign key列上可以取空值,DBMS將跳過對foreign key約束的檢查,因此如果插入Emp_Sal如下數(shù)據(jù):

insert into Emp_Sal values(6,null,null) 則插入到Emp_Sal中,但其主表的相關(guān)列卻不存在。

解決辦法:

(1)將聯(lián)合外鍵的列添加not null約束,但這限制了用戶的部分操作。

(2)采用Match子句。(sqlserver不支持).

更新、刪除操作規(guī)則:

在刪除或更新有primary key值的行,且該值與子表的foreign key中一個或多個值相匹配時,會引起匹配完整性的喪失。

在foreign key創(chuàng)建語法中,提供了可選的on update和on delete子句,也就是上面的[referential triggered action]。可用此保持引用完整性。

on update / on delete

no action|cascade|restrict|set null|set default

no action:更新或刪除父表中的數(shù)據(jù)時,如果會使子表中的外鍵違反引用完整性,該動作將被禁止執(zhí)行。不過在某些條件下,可出現(xiàn)暫時的,但在數(shù)據(jù)的最終狀態(tài)中,不能違反外鍵的引用完整性。

cascade: 當(dāng)父表中被引用列的數(shù)據(jù)被更新或刪除時,子表中的相應(yīng)的數(shù)據(jù)也被更新或刪除。

restrict:與no action規(guī)則基本相同,只是引用列中的數(shù)據(jù)永遠(yuǎn)不能違反外鍵的引用完整性,暫時的也不行。

set null:當(dāng)父表數(shù)據(jù)被更新或刪除時,子表中的相應(yīng)數(shù)據(jù)被設(shè)置成Null值,前提是子表中的相應(yīng)列允許null值。

set default:當(dāng)父表數(shù)據(jù)被更新或刪除時,子表中的數(shù)據(jù)被設(shè)置成默認(rèn)值。前提是子表中的相應(yīng)列設(shè)置有默認(rèn)值。

(5) check(校驗)約束:用來檢查字段值所允許的范圍。DBMS每當(dāng)執(zhí)行delete,insert或update語句時,都對這個約束過濾。如果為true,則執(zhí)行。否則,取消執(zhí)行并提示錯誤。

列定義語法如下:

Column datetype | domain check(search condition)

表約束語法如下:

constraint constraint_name check(search condition)

實例如下:

create table Emp_Sal

(

emp_id int , account CHAR(4) ,salary DECIMAL(5,1),

constraint validsal check(salary =1000 and salary=10000)

)

如果此時,再往表中插入如下語句則會出錯:(因為不滿足salary大于等于1000的約束。)

insert into Emp_Sal values(8,'12324343',800.0)

二、 域約束:(sqlserver 不支持)

語法如下:

create domain domain_name as data type

[default default_value]

[constraint constraint_name] check(value condition expression)

例如:

create domain valid_no as int

constraint constraint_no check(value between 100 and 999)

然后創(chuàng)建表時,使用valid_no域。

create table TestDomain

(

emp_id valid_no,

emp_name varchar(10),

)

三、斷言約束:不必與特定的列綁定,可以理解為能應(yīng)用于多個表的check約束,因此必須在表定義之外獨(dú)立創(chuàng)建斷言。

語法如下:

create assertion constraint_name

check search condition

例如:

create assertion name

check (Emp_Sal.emp_id in(select emp_id from EmployeeInfo where emp_name is not null)

添加斷言后,每當(dāng)試圖添加或修改Emp_Sal表中的數(shù)據(jù)時,就對斷言中的搜索條件求值,如果為false,則取消執(zhí)行,給出提示

關(guān)于SQL基礎(chǔ)版 無法啟動服務(wù)器

幫你在網(wǎng)上搜索一下,應(yīng)該是master數(shù)據(jù)庫損壞了,可以通過以下3步修復(fù)吧,網(wǎng)上是這么說的

1 .備份自己的重要的數(shù)據(jù)庫文件 MDF,LDF文件

2 .重建Master 如果不行,重裝 sqlserver

3 .附加你的數(shù)據(jù)庫文件進(jìn)sqlserver

自己仔細(xì)看這個

如果是master文件損壞,有兩咱辦法可以解決:

1.重新安裝SQL,對master進(jìn)行修復(fù)

也可能通過SQL的命令來實現(xiàn)修復(fù)數(shù)據(jù)庫,具體操作方法:

2.從其他地方復(fù)制一個同版本的master數(shù)據(jù)庫文件,這種方法操作比較復(fù)雜,可參考:

如果是Master壞了,又不想重裝的話,可以用SQL自帶的工具進(jìn)行重建。具體做法,可以參考:

上面寫了一些我在重建Master中的心得。

-----------------


網(wǎng)站欄目:sqlserver有斷言,sql 斷言
標(biāo)題網(wǎng)址:http://weahome.cn/article/hdgjse.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部