最新文章
|
知識(shí)管理交流
→『 技術(shù)文檔交流 』
本版文數(shù):9423 今日文數(shù):4018
|
今天寫(xiě)了個(gè)存儲(chǔ)過(guò)程,在查詢分析器中測(cè)試報(bào)錯(cuò):
這樣的錯(cuò)誤信息根本看不出錯(cuò)在哪邊,只能用單步執(zhí)行來(lái)追蹤了。在查詢分析器對(duì)象瀏覽器中找到要調(diào)試的存儲(chǔ)過(guò)程,右鍵點(diǎn)擊選擇調(diào)試:
輸入各個(gè)參數(shù)的值后開(kāi)始調(diào)試(鉤選自動(dòng)回滾調(diào)試完畢后將回滾操作):
按F11單步執(zhí)行:
終于找到...
|
SQLServer2000生成SQL腳本時(shí)默認(rèn)沒(méi)有生成字段描述、主鍵和字段默認(rèn)值等信息,但這些信息都非常重要,是必須要生成的,所以在生成SQL腳本時(shí)必須手工設(shè)置下:
1.生成字段描述:切換到設(shè)置格式選項(xiàng)卡,鉤選包括擴(kuò)展屬性
2.生成主鍵和字段默認(rèn)值:切換到選項(xiàng)選項(xiàng)卡,鉤選編寫(xiě)主鍵、外鍵、默認(rèn)值和檢查約束...
|
平時(shí)經(jīng)常用SQLServer2000自帶的導(dǎo)出數(shù)據(jù)向?qū)?shù)據(jù)從一臺(tái)數(shù)據(jù)庫(kù)服務(wù)器導(dǎo)出到另一臺(tái)數(shù)據(jù)庫(kù)服務(wù)器:
結(jié)果數(shù)據(jù)導(dǎo)出了,但表的主鍵、字段默認(rèn)值、描述等信息卻未能導(dǎo)出,一直沒(méi)想出什么方法,今天又嘗試了幾種方法,最終實(shí)現(xiàn)了需求。方法很簡(jiǎn)單:先生成數(shù)據(jù)源的SQL腳本,然后在目標(biāo)數(shù)據(jù)庫(kù)服務(wù)器上執(zhí)行SQL腳本,將...
|
下邊兩種方法是從網(wǎng)上搜集的,個(gè)人覺(jué)得都還不錯(cuò),大家可以看下選擇其中一種方法或是綜合兩種方法的優(yōu)點(diǎn)總結(jié)出自己的命名方法。
方法一
A、“表”單數(shù)形式命名
語(yǔ)法:[proc]_[MainTableName]_([FieldName]_)[Action]
--創(chuàng)建/刪除/更新/等操作采用單數(shù)表形式命名...
|
在企業(yè)管理器中我們無(wú)法對(duì)數(shù)據(jù)庫(kù)進(jìn)行重命名,下邊介紹兩種方法來(lái)實(shí)現(xiàn)對(duì)SQLServer數(shù)據(jù)庫(kù)重命名。
方法一:使用系統(tǒng)存儲(chǔ)過(guò)程sp_renamedb
在使用sp_renamedb對(duì)數(shù)據(jù)庫(kù)進(jìn)行重命名前必須確保所有使用數(shù)據(jù)庫(kù)的連接都已關(guān)閉,打開(kāi)所有任務(wù)→分離數(shù)據(jù)庫(kù),點(diǎn)擊清除按鈕即可關(guān)閉數(shù)據(jù)庫(kù)所有連接,然后在查詢分...
|
觸發(fā)器是一種特殊的存儲(chǔ)過(guò)程,在用戶試圖對(duì)指定的表執(zhí)行指定的數(shù)據(jù)修改語(yǔ)句時(shí)自動(dòng)執(zhí)行。創(chuàng)建語(yǔ)法:
引用內(nèi)容CreateTRIGGERtrigger_nameON
AS
sql_statement
下邊主要說(shuō)下INSTEADOF和AFTER兩個(gè)參數(shù)的區(qū)別:
·執(zhí)行時(shí)間:INSTEADOF在SQL語(yǔ)句執(zhí)行...
|
有時(shí),我們想知道登錄到數(shù)據(jù)庫(kù)的用戶做了什么,于是,記錄用戶執(zhí)行的SQL語(yǔ)句就非常有必要,這將是重要的參考依據(jù)。我們先建一張日志表(DBLoger)用于保存用戶執(zhí)行的SQL語(yǔ)句:
程序代碼CreateTABLEDBLoger(
LoginNamenvarchar(50),
HostNamenvarchar(50...
|
WindowsServer自帶的互聯(lián)網(wǎng)信息服務(wù)器(InternetInformationServer,IIS)是架設(shè)網(wǎng)站服務(wù)器的常用工具,它是一個(gè)既簡(jiǎn)單而又麻煩的東西,新手都可以使用IIS架設(shè)一個(gè)像模像樣的Web站點(diǎn)來(lái),但配置、優(yōu)化IIS的性能,使得網(wǎng)站訪問(wèn)性能達(dá)到優(yōu)選狀態(tài)卻不是一件簡(jiǎn)單的事情,這里我就介紹一下如何一步...
|
1).判斷用戶表是否存在
程序代碼ifexists(selecttop1*fromsysobjectswhereid=object_id(N[所有者.]表名)andtype=U)
2).判斷臨時(shí)表是否存在
程序代碼ifobject_id(tempdb..##temp)isnotnull
3).判斷存儲(chǔ)過(guò)...
|
上邊是mssql2000導(dǎo)入數(shù)據(jù)向?qū)У倪x擇數(shù)據(jù)源界面,若access設(shè)置有密碼,很多人在這邊都會(huì)為難:用戶名是什么?在給access設(shè)置密碼時(shí)并沒(méi)有提示用戶名相關(guān)信息,便開(kāi)始百度怎么獲取用戶名,最終都以失敗告終。正確的做法是:界面中用戶名、密碼留空,打開(kāi)高級(jí)設(shè)置界面,在JetOLEDB:DatabasePass...
|
可以在數(shù)據(jù)庫(kù)關(guān)系圖中的表間創(chuàng)建關(guān)系以顯示某個(gè)表中的列如何鏈接到另一表中的列。
在關(guān)系數(shù)據(jù)庫(kù)中,關(guān)系能防止冗余的數(shù)據(jù)。例如,如果正在設(shè)計(jì)一個(gè)數(shù)據(jù)庫(kù)來(lái)跟蹤有關(guān)書(shū)的信息,而每本書(shū)的信息(如書(shū)名、出版日期和出版商)都保存在一個(gè)名為titles的表中。同時(shí)還有一些想保存的有關(guān)出版商的信息,例如出版商的電話號(hào)碼、地址和郵政編...
|
上圖是一個(gè)WEB站點(diǎn)訪問(wèn)日志表,記錄了訪問(wèn)對(duì)象的相關(guān)信息?,F(xiàn)在要求增加一個(gè)站點(diǎn)每天的IP、PV統(tǒng)計(jì)功能,數(shù)據(jù)量小時(shí)直接對(duì)Web_AccessLogTB表中的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)即可,若數(shù)據(jù)量比較大,這樣做就不合適了。解決方法是進(jìn)行預(yù)統(tǒng)計(jì):在用戶查看統(tǒng)計(jì)之前就已經(jīng)預(yù)先統(tǒng)計(jì)好了,用戶查看時(shí)只是顯示下結(jié)果而已。預(yù)統(tǒng)計(jì)的方式又可分成兩...
|
用戶定義數(shù)據(jù)類型提供了一個(gè)便利的方法來(lái)確保數(shù)據(jù)類型的一致性,即在值域可能相同的列上使用用戶定義數(shù)據(jù)類型替代系統(tǒng)提供的數(shù)據(jù)類型。例如,數(shù)據(jù)庫(kù)可能將在很多個(gè)表中存儲(chǔ)各種各樣的電話號(hào)碼。盡管號(hào)碼不是單一的,但存在確定的方法來(lái)存儲(chǔ)電話號(hào)碼,這在數(shù)據(jù)庫(kù)一致性方面是重要的。可以創(chuàng)建用戶定義數(shù)據(jù)類型,在表列中一致地使用它,確保電話號(hào)...
|
SQLServer2000的聚合函數(shù)大都會(huì)忽略空值,所以在含有空值的列上使用聚合函數(shù)時(shí)需格外謹(jǐn)慎。例如有一個(gè)Student表如下:
我們用下邊SQL語(yǔ)句統(tǒng)計(jì)下人數(shù)、平均年齡、最大年齡、最小年齡:
程序代碼select
count(*)ascount1,
count(age)ascount2,
...
|
SQLServer2000關(guān)系圖字面上的理解是用于管理表之間的關(guān)系用的,除此外,也可以用它來(lái)新建、修改表,并且比SQLServer2000的表設(shè)計(jì)器還好用。在關(guān)系圖空白處單擊右鍵,在菜單中可以看到,我們既可以新建表,也可以將現(xiàn)有的表添加到關(guān)系圖中:
這邊我們將現(xiàn)有的表添加到關(guān)系圖中:
默認(rèn)表...
|
ROLLUP、CUBE運(yùn)算符和GROUPBY一起使用能在結(jié)果集中加入一些額外的統(tǒng)計(jì)信息,例如有一張OrderDetail表,結(jié)構(gòu)和數(shù)據(jù)如下:
例1:統(tǒng)計(jì)每個(gè)訂單的產(chǎn)品數(shù)量。
程序代碼selectorderid,sum(quantity)asquantityfromorderDetail
g...
|
COMPUTE函數(shù)能在普通查詢的基礎(chǔ)上顯示一些統(tǒng)計(jì)信息,和ROLLUP和CUBE運(yùn)算符不同,這些統(tǒng)計(jì)信息不直接加在結(jié)果集中,在查詢分析器中可以看到,但不返回給客戶端程序,并且它不需要和GROUPBY一起使用。
例如有一張OrderDetail表,結(jié)構(gòu)和數(shù)據(jù)如下:
例1:統(tǒng)計(jì)所有訂單的產(chǎn)品數(shù)
...
|
設(shè)計(jì)有用的索引是改善查詢性能最重要的方面之一,它要求理解索引的結(jié)構(gòu)及理解數(shù)據(jù)是如何使用的。
數(shù)據(jù)
在創(chuàng)建索引前,必須對(duì)數(shù)據(jù)有全面的了解,包括以下內(nèi)容:
·邏輯和物理設(shè)計(jì)
·數(shù)據(jù)特征
·如何使用數(shù)據(jù)
為了設(shè)計(jì)有用和有效索引,必須依賴于對(duì)用戶所發(fā)出查詢的分析。對(duì)用戶如何訪問(wèn)數(shù)據(jù)的不準(zhǔn)確分析會(huì)導(dǎo)致查詢響應(yīng)...
|
1.SQLServer2000文件的類型(1).主要數(shù)據(jù)文件主要數(shù)據(jù)文件由主文件組中的初始數(shù)據(jù)文件組成。它包含所有數(shù)據(jù)庫(kù)系統(tǒng)表。主要數(shù)據(jù)文件是數(shù)據(jù)庫(kù)的起始點(diǎn),它指向數(shù)據(jù)庫(kù)中的其他文件。每一個(gè)數(shù)據(jù)庫(kù)都有一個(gè)主要數(shù)據(jù)文件和一個(gè)主文件組,主要數(shù)據(jù)文件的擴(kuò)展名是.mdf。(2).次要數(shù)據(jù)文件數(shù)據(jù)庫(kù)可能包含次要數(shù)據(jù)文件。一些數(shù)據(jù)...
|
在SQLServer2000中,若想查看哪個(gè)SQL語(yǔ)句引起了阻塞,可以到數(shù)據(jù)庫(kù)服務(wù)器→管理→當(dāng)前活動(dòng)→鎖/進(jìn)程ID下邊查看,它列出了當(dāng)前所有活動(dòng)進(jìn)程,并標(biāo)明哪些進(jìn)程引起了阻塞。
例如我們打開(kāi)兩個(gè)查詢分析器,并運(yùn)行下邊語(yǔ)句:
程序代碼useNorthwind
begintran
updateCustomers...
|
·所有數(shù)據(jù)庫(kù)都有一個(gè)主要數(shù)據(jù)文件(.mdf)及一個(gè)或多個(gè)事務(wù)日志文件(.ldf),還可能有次要數(shù)據(jù)文件(.ndf)。這些物理文件不僅具有操作系統(tǒng)文件名,還具有邏輯文件名(用于Transact-SQL)。所有數(shù)據(jù)文件和事務(wù)日志文件的默認(rèn)存放位置都是C:\ProgramFiles\MicrosoftSQLServer\MS...
|
今天一平臺(tái)訪問(wèn)總出現(xiàn)ServiceUnavailable,在服務(wù)器上打開(kāi)則顯示Serveristoobusy。一般這問(wèn)題多是應(yīng)用程序占用了過(guò)多的系統(tǒng)資源所致,嘗試回收、新建應(yīng)用程序池問(wèn)題沒(méi)有解決,重啟服務(wù)器問(wèn)題依舊。
打開(kāi)事件查看器,希望能找點(diǎn)線索,果然,在應(yīng)用程序下邊看見(jiàn)很多類似的消息:數(shù)據(jù)庫(kù)xxx中文件xxx...
|
在SQLServer2000中要?jiǎng)h除日志釋放磁盤(pán)空間得分兩步進(jìn)行:
·執(zhí)行backuplog語(yǔ)句來(lái)刪除不活動(dòng)日志,但此時(shí)磁盤(pán)空間并未釋放;
·收縮數(shù)據(jù)庫(kù)釋放未使用的磁盤(pán)空間;
下邊詳細(xì)說(shuō)明:
①.執(zhí)行backuplog語(yǔ)句刪除不活動(dòng)日志
執(zhí)行sql語(yǔ)句:backuplogNorthwindwi...
|
通常情況下,可以從兩個(gè)方面來(lái)判斷數(shù)據(jù)庫(kù)是否設(shè)計(jì)的比較規(guī)范。一是看看是否擁有大量的窄表,二是寬表的數(shù)量是否足夠的少。若符合這兩個(gè)條件,則可以說(shuō)明這個(gè)數(shù)據(jù)庫(kù)的規(guī)范化水平還是比較高的。當(dāng)然這是兩個(gè)泛泛而談的指標(biāo)。為了達(dá)到數(shù)據(jù)庫(kù)設(shè)計(jì)規(guī)范化的要求,一般來(lái)說(shuō),需要符合以下五個(gè)要求。
要求一:表中應(yīng)該避免可為空的列。
雖...
|
1.對(duì)查詢進(jìn)行優(yōu)化,應(yīng)盡量避免全表掃描,首先應(yīng)考慮在where及orderby涉及的列上建立索引。
2.應(yīng)盡量避免在where子句中對(duì)字段進(jìn)行null值判斷,否則將導(dǎo)致引擎放棄使用索引而進(jìn)行全表掃描,如:
selectidfromtwherenumisnull
可以在num上設(shè)置默認(rèn)值0,確保表中nu...
|