欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      sqlserver日志文件總結(jié)及充滿處理

      時(shí)間:2019-05-12 14:02:14下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫(xiě)寫(xiě)幫文庫(kù)小編為你整理了多篇相關(guān)的《sqlserver日志文件總結(jié)及充滿處理》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫(xiě)寫(xiě)幫文庫(kù)還可以找到更多《sqlserver日志文件總結(jié)及充滿處理》。

      第一篇:sqlserver日志文件總結(jié)及充滿處理

      sqlserver日志文件總結(jié)及充滿處理 文章來(lái)源:sqlserver論壇 作者:hansbj

      交易日志(Transaction logs)是數(shù)據(jù)庫(kù)結(jié)構(gòu)中非常重要但又經(jīng)常被忽略的部分。由于它并不像數(shù)據(jù)庫(kù)中的schema那樣活躍,因此很少有人關(guān)注交易日志。

      交易日志是針對(duì)數(shù)據(jù)庫(kù)改變所做的記錄,它可以記錄針對(duì)數(shù)據(jù)庫(kù)的任何操作,并將記錄結(jié)果保存在獨(dú)立的文件中。對(duì)于任何每一個(gè)交易過(guò)程,交易日志都有非常全面的記錄,根據(jù)這些記錄可以將數(shù)據(jù)文件恢復(fù)成交易前的狀態(tài)。從交易動(dòng)作開(kāi)始,交易日志就處于記錄狀態(tài),交易過(guò)程中對(duì)數(shù)據(jù)庫(kù)的任何操作都在記錄范圍,直到用戶點(diǎn)擊提交或后退后才結(jié)束記錄。每個(gè)數(shù)據(jù)庫(kù)都擁有至少一個(gè)交易日志以及一個(gè)數(shù)據(jù)文件。

      出于性能上的考慮,SQL Server將用戶的改動(dòng)存入緩存中,這些改變會(huì)立即寫(xiě)入交易日志,但不會(huì)立即寫(xiě)入數(shù)據(jù)文件。交易日志會(huì)通過(guò)一個(gè)標(biāo)記點(diǎn)來(lái)確定某個(gè)交易是否已將緩存中的數(shù)據(jù)寫(xiě)入數(shù)據(jù)文件。當(dāng)SQL Server重啟后,它會(huì)查看日志中最新的標(biāo)記點(diǎn),并將這個(gè)標(biāo)記點(diǎn)后面的交易記錄抹去,因?yàn)檫@些交易記錄并沒(méi)有真正的將緩存中的數(shù)據(jù)寫(xiě)入數(shù)據(jù)文件。這可以防止那些中斷的交易修改數(shù)據(jù)文件。

      維護(hù)交易日志

      因?yàn)楹芏嗳私?jīng)常遺忘交易日志,因此它也會(huì)給系統(tǒng)帶來(lái)一些問(wèn)題。隨著系統(tǒng)的不斷運(yùn)行,日志記錄的內(nèi)容會(huì)越來(lái)越多,日志文件的體積也會(huì)越來(lái)越大,最終導(dǎo)致可用磁盤空間不足。除非日常工作中經(jīng)常對(duì)日志進(jìn)行清理,否則日志文件最終會(huì)侵占分區(qū)內(nèi)的全部可用空間。日志的默認(rèn)配置為不限容量,如果以這種配置工作,它就會(huì)不斷膨脹,最終也會(huì)占據(jù)全部可用空間。這兩種情況都會(huì)導(dǎo)致數(shù)據(jù)庫(kù)停止工作。

      對(duì)交易日志的日常備份工作可以有效的防止日志文件過(guò)分消耗磁盤空間。備份過(guò)程會(huì)將日志中不再需要的部分截除。截除的方法是首先把舊記錄標(biāo)記為非活動(dòng)狀態(tài),然后將新日志覆蓋到舊日志的位置上,這樣就可以防止交易日志的體積不斷膨脹。如果無(wú)法對(duì)日志進(jìn)行經(jīng)常性的備份工作,最好將數(shù)據(jù)庫(kù)設(shè)置為“簡(jiǎn)單恢復(fù)模式”。在這種模式下,系統(tǒng)會(huì)強(qiáng)制交易日志在每次記錄標(biāo)記點(diǎn)時(shí),自動(dòng)進(jìn)行截除操作,以新日志覆蓋舊日志。

      截除過(guò)程發(fā)生在備份或?qū)⑴f標(biāo)記點(diǎn)標(biāo)為非活動(dòng)狀態(tài)時(shí),它使得舊的交易記錄可以被覆蓋,但這并不會(huì)減少交易日志實(shí)際占用的磁盤空間。就算不再使用日志,它依然會(huì)占據(jù)一定的空間。因此在維護(hù)時(shí),還需要對(duì)交易日志進(jìn)行壓縮。壓縮交易日志的方法是刪除非活動(dòng)記錄,從而減少日志文件所占用的物理硬盤空間。

      通過(guò)使用DBCC SHRINKDATABASE語(yǔ)句可以壓縮當(dāng)前數(shù)據(jù)庫(kù)的交易日志文件,DBCC SHRINKFILE語(yǔ)句用來(lái)壓縮指定的交易日志文件,另外也可以在數(shù)據(jù)庫(kù)中激活自動(dòng)壓縮操作。當(dāng)壓縮日志時(shí),首先會(huì)將舊記錄標(biāo)記為非活動(dòng)狀態(tài),然后將帶有非活動(dòng)標(biāo)記的記錄徹底刪除。根據(jù)所使用的壓縮方式的不同,你可能不會(huì)立即看到結(jié)果。在理想情況下,壓縮工作應(yīng)該選在系統(tǒng)不是非常繁忙的時(shí)段進(jìn)行,否則有可能影響數(shù)據(jù)庫(kù)性能。

      恢復(fù)數(shù)據(jù)庫(kù)

      交易記錄備份可以用來(lái)將數(shù)據(jù)庫(kù)恢復(fù)到某一指定狀態(tài),但交易記錄備份本身不足以完成恢復(fù)數(shù)據(jù)庫(kù)的 任務(wù),還需要備份的數(shù)據(jù)文件參與恢復(fù)工作?;謴?fù)數(shù)據(jù)庫(kù)時(shí),首先進(jìn)行的是數(shù)據(jù)文件的恢復(fù)工作。在整個(gè)數(shù)據(jù)文件恢復(fù)完成前,不要將其設(shè)為完成狀態(tài),否則交易日志就不會(huì)被恢復(fù)。當(dāng)數(shù)據(jù)文件恢復(fù)完成,系統(tǒng)會(huì)通過(guò)交易日志的備份將數(shù)據(jù)庫(kù)恢復(fù)成用戶希望的狀態(tài)。如果在數(shù)據(jù)庫(kù)最后一次備份后,存在多個(gè)日志文件的備份,備份程序會(huì)按照它們建立的時(shí)間依次將其恢復(fù)。

      另一種被稱為log shipping的過(guò)程可以提供更強(qiáng)的數(shù)據(jù)庫(kù)備份能力。當(dāng)log shipping配置好后,它可以將數(shù)據(jù)庫(kù)整個(gè)復(fù)制到另一臺(tái)服務(wù)器上。在這種情況下,交易日志也會(huì)定期發(fā)送到備份服務(wù)器上供恢復(fù)數(shù)據(jù)使用。這使得服務(wù)器一直處于熱備份狀態(tài),當(dāng)數(shù)據(jù)發(fā)生改變時(shí)它也隨之更新。另一個(gè)服務(wù)器被稱作監(jiān)視(monitor)服務(wù)器,可以用來(lái)監(jiān)視按規(guī)定時(shí)間間隔發(fā)送的shipping信號(hào)。如果在規(guī)定時(shí)間內(nèi)沒(méi)有收到信號(hào),監(jiān)視服務(wù)器會(huì)將這一事件記錄到事件日志。這種機(jī)制使得log shipping經(jīng)常成為災(zāi)難恢復(fù)計(jì)劃中使用的方案。

      性能優(yōu)化

      交易日志對(duì)數(shù)據(jù)庫(kù)有重要作用,同時(shí)它對(duì)系統(tǒng)的整體性能也有一定影響。通過(guò)幾個(gè)選項(xiàng),我們可以對(duì)交易日志的性能進(jìn)行優(yōu)化。由于交易日志是一個(gè)連續(xù)的磁盤寫(xiě)入過(guò)程,在這當(dāng)中不會(huì)發(fā)生讀取動(dòng)作。因此將日志文件放在一個(gè)獨(dú)立的磁盤,對(duì)優(yōu)化性能有一定作用。

      另一項(xiàng)優(yōu)化措施與日志文件的體積有關(guān)。我們可以設(shè)置日志文件的體積不超過(guò)硬盤空間的百分之幾,或者確定它的大小。如果將其設(shè)置的過(guò)大會(huì)浪費(fèi)磁盤空間,而如果設(shè)置的過(guò)小則會(huì)強(qiáng)制記錄文件不斷嘗試擴(kuò)展,導(dǎo)致數(shù)據(jù)庫(kù)性能下降。

      事務(wù)日志文件Transaction Log File是用來(lái)記錄數(shù)據(jù)庫(kù)更新情況的文件,擴(kuò)展名為ldf。

      在 SQL Server 7.0 和 SQL Server 2000 中,如果設(shè)置了自動(dòng)增長(zhǎng)功能,事務(wù)日志文件將會(huì)自動(dòng)擴(kuò)展。

      一般情況下,在能夠容納兩次事務(wù)日志截?cái)嘀g發(fā)生的最大數(shù)量的事務(wù)時(shí),事務(wù)日志的大小是穩(wěn)定的,事務(wù)日志截?cái)嘤蓹z查點(diǎn)或者事務(wù)日志備份觸發(fā)。

      然而,在某些情況下,事務(wù)日志可能會(huì)變得非常大,以致用盡空間或變滿。通常,在事務(wù)日志文件占盡可用磁盤空間且不能再擴(kuò)展時(shí),您將收到如下錯(cuò)誤消息:

      Error:9002, Severity:17, State:2

      The log file for database '%.*ls' is full.除了出現(xiàn)此錯(cuò)誤消息之外,SQL Server 還可能因?yàn)槿鄙偈聞?wù)日志擴(kuò)展空間而將數(shù)據(jù)庫(kù)標(biāo)記為 SUSPECT。有關(guān)如何從此情形中恢復(fù)的其他信息,請(qǐng)參見(jiàn) SQL Server 聯(lián)機(jī)幫助中的“磁盤空間不足”主題。

      另外,事務(wù)日志擴(kuò)展可能導(dǎo)致下列情形:

      · 非常大的事務(wù)日志文件。

      · 事務(wù)可能會(huì)失敗并可能開(kāi)始回滾。

      · 事務(wù)可能會(huì)用很長(zhǎng)時(shí)間才能完成。

      · 可能發(fā)生性能問(wèn)題。

      · 可能發(fā)生阻塞現(xiàn)象。

      原因

      事務(wù)日志擴(kuò)展可能由于以下原因或情形而發(fā)生:

      · 未提交的事務(wù)

      · 非常大的事務(wù)

      · 操作:DBCC DBREINDEX 和 CREATE INDEX

      · 在從事務(wù)日志備份還原時(shí)

      · 客戶端應(yīng)用程序不處理所有結(jié)果

      · 查詢?cè)谑聞?wù)日志完成擴(kuò)展之前超時(shí),您收到假的“Log Full”錯(cuò)誤消息

      · 未復(fù)制的事務(wù)

      日志文件滿而造成SQL數(shù)據(jù)庫(kù)無(wú)法寫(xiě)入文件時(shí),可用兩種方法:

      一種方法:清空日志。

      1.打開(kāi)查詢分析器,輸入命令

      DUMP TRANSACTION 數(shù)據(jù)庫(kù)名 WITH NO_LOG

      2.再打開(kāi)企業(yè)管理器--右鍵你要壓縮的數(shù)據(jù)庫(kù)--所有任務(wù)--收縮數(shù)據(jù)庫(kù)--收縮文件--選擇日志文件--在收縮方式里選擇收縮至XXM,這里會(huì)給出一個(gè)允許收縮到的最小M數(shù),直接輸入這個(gè)數(shù),確定就可以了。

      另一種方法有一定的風(fēng)險(xiǎn)性,因?yàn)镾QL SERVER的日志文件不是即時(shí)寫(xiě)入數(shù)據(jù)庫(kù)主文件的,如處理不當(dāng),會(huì)造成數(shù)據(jù)的損失。

      1: 刪除LOG

      分離數(shù)據(jù)庫(kù) 企業(yè)管理器->服務(wù)器->數(shù)據(jù)庫(kù)->右鍵->分離數(shù)據(jù)庫(kù)

      2:刪除LOG文件

      附加數(shù)據(jù)庫(kù) 企業(yè)管理器->服務(wù)器->數(shù)據(jù)庫(kù)->右鍵->附加數(shù)據(jù)庫(kù)

      此法生成新的LOG,大小只有500多K。

      注意:建議使用第一種方法。

      如果以后,不想要它變大。

      SQL2000下使用:

      在數(shù)據(jù)庫(kù)上點(diǎn)右鍵->屬性->選項(xiàng)->故障恢復(fù)-模型-選擇-簡(jiǎn)單模型。

      或用SQL語(yǔ)句:

      alter database 數(shù)據(jù)庫(kù)名 set recovery simple

      另外,數(shù)據(jù)庫(kù)屬性有兩個(gè)選項(xiàng),與事務(wù)日志的增長(zhǎng)有關(guān):

      Truncate log on checkpoint

      (此選項(xiàng)用于SQL7.0,SQL 2000中即故障恢復(fù)模型選擇為簡(jiǎn)單模型)

      當(dāng)執(zhí)行CHECKPOINT 命令時(shí)如果事務(wù)日志文件超過(guò)其大小的70% 則將其內(nèi)容清除在開(kāi)發(fā)數(shù)據(jù)庫(kù)時(shí)時(shí)常將此選項(xiàng)設(shè)置為True

      Auto shrink

      定期對(duì)數(shù)據(jù)庫(kù)進(jìn)行檢查當(dāng)數(shù)據(jù)庫(kù)文件或日志文件的未用空間超過(guò)其大小的25%時(shí),系統(tǒng)將會(huì)自動(dòng)縮減文件使其未用空間等于25% 當(dāng)文件大小沒(méi)有超過(guò)其建立時(shí)的初始大小時(shí)不會(huì)縮減文件縮減后的文件也必須大于或等于其初始大小對(duì)事務(wù)日志文件的縮減只有在對(duì)其作備份時(shí)或?qū)runcate log on checkpoint 選項(xiàng)設(shè)為True 時(shí)才能進(jìn)行。

      注意:一般立成建立的數(shù)據(jù)庫(kù)默認(rèn)屬性已設(shè)好,但碰到意外情況使數(shù)據(jù)庫(kù)屬性被更改,請(qǐng)用戶清空日志后,檢查數(shù)據(jù)庫(kù)的以上屬性,以防事務(wù)日志再次充滿。

      第二篇:日志和文件接入規(guī)范

      數(shù)據(jù)接入規(guī)范-日志和文件

      修訂歷史

      日期

      修改說(shuō)明

      部門

      修改人

      數(shù)據(jù)接入需求

      基于數(shù)據(jù)采集需求,初步判斷數(shù)據(jù)的接入源是否可以從日志和文件進(jìn)行獲取。聯(lián)系技術(shù)研發(fā)部同事,請(qǐng)求數(shù)據(jù)源接入的位置參數(shù),通過(guò)配置化方式定期讀取服務(wù)器指定位置的日志和文件,通過(guò)程序清洗日志,分割成字段裝載到數(shù)據(jù)倉(cāng)庫(kù)貼源層。

      數(shù)據(jù)接入流程

      1.數(shù)據(jù)中心分析組接到TAPD數(shù)據(jù)接入需求之后,分析接入數(shù)據(jù)屬于數(shù)據(jù)接口列表的哪個(gè)系統(tǒng),在對(duì)應(yīng)的系統(tǒng)標(biāo)題下添加模板,參照APP-app_login_log。

      和需求發(fā)起人進(jìn)行溝通,確定提供數(shù)據(jù)的方式(數(shù)據(jù)庫(kù)、文件、接口等),讓需求發(fā)起人補(bǔ)充詳細(xì)的數(shù)據(jù)口徑,補(bǔ)充到需求要求里面,指定數(shù)據(jù)倉(cāng)庫(kù)組或平臺(tái)組的一個(gè)人進(jìn)行轉(zhuǎn)發(fā)。

      2.數(shù)據(jù)倉(cāng)庫(kù)組或平臺(tái)組根據(jù)需求描述。跟數(shù)據(jù)源提供方(可以是需求發(fā)起方、也可以是技術(shù)研發(fā)部門)溝通,讓其補(bǔ)充模板里的位置參數(shù)。

      3.數(shù)據(jù)源提供方根據(jù)模板要求,提供位置配置參數(shù)。

      4.數(shù)據(jù)倉(cāng)庫(kù)組或平臺(tái)組在接入數(shù)據(jù)后,整理數(shù)據(jù)格式,編寫(xiě)日志清洗轉(zhuǎn)換腳本,并補(bǔ)充裝載目標(biāo)表信息。

      5.數(shù)據(jù)中心分析組對(duì)最終接入的數(shù)據(jù)進(jìn)行驗(yàn)收,并通知需求發(fā)起人如何獲得接入數(shù)據(jù)。

      數(shù)據(jù)源接入模板

      需求要求(分析組補(bǔ)充)

      tapd需求單號(hào):1002513

      提起人:xxx(Richard.chen)

      需求單號(hào)內(nèi)容:

      ???

      提供數(shù)據(jù)方式:

      數(shù)據(jù)庫(kù)、文件、接口

      詳細(xì)的數(shù)據(jù)口徑:???

      位置配置參數(shù)(技術(shù)研發(fā)部補(bǔ)充)

      配置參數(shù)

      參數(shù)取值

      服務(wù)器地址

      192.168.1.1

      端口類型

      ftp

      端口號(hào)

      系統(tǒng)用戶名

      user

      密碼

      pwd

      日志路徑

      日志文件通配符

      xxx/yyyymmdd/AppLog

      app_login_log_[yyyymmdd].json

      日志內(nèi)容分割規(guī)則

      文字描述

      接入模型字段(倉(cāng)庫(kù)組補(bǔ)充)

      字段名

      注釋

      字段類型

      必填

      必填

      必填

      必填

      必填

      必填

      抽取參數(shù)(倉(cāng)庫(kù)組補(bǔ)充)

      配置參數(shù)

      參數(shù)取值

      抽數(shù)周期

      每天

      抽數(shù)時(shí)間

      7:00

      文件名匹配條件

      1:全量匹配抽?。ㄆヅ渫ㄅ浞闯槿。?/p>

      2:日期匹配抽取(僅抽取通配符日期字段匹配數(shù)據(jù)日期條件的文件)

      數(shù)據(jù)日期格式

      Yyyymmdd

      Yyyy-mm-dd

      數(shù)據(jù)日期條件

      1:上一天日期

      2:當(dāng)前時(shí)間日期

      3:當(dāng)前時(shí)間歸屬周周日

      4:當(dāng)前時(shí)間歸屬月一號(hào)

      日志清洗轉(zhuǎn)換腳本(倉(cāng)庫(kù)組補(bǔ)填)

      補(bǔ)充腳本位置即可,如t8t-bi-dsc\log-app\log-app.py

      裝載目標(biāo)表(倉(cāng)庫(kù)組補(bǔ)填)

      配置參數(shù)

      參數(shù)取值

      stg層表名稱

      必填

      stg層表描述

      必填

      ods層表名稱

      必填

      ods層表描述

      必填

      數(shù)據(jù)接口列表

      PC

      H5

      APP

      app_login_log

      l

      需求單號(hào)(分析組補(bǔ)充)

      tapd需求單號(hào):xxxxxxx

      提起人:xxx(Richard.chen)

      l

      位置配置參數(shù)(技術(shù)研發(fā)部補(bǔ)充)

      配置參數(shù)

      參數(shù)取值

      服務(wù)器地址

      192.168.1.1

      端口類型

      ftp

      端口號(hào)

      系統(tǒng)用戶名

      user

      密碼

      pwd

      日志路徑

      日志文件通配符

      xxx/yyyymmdd/AppLog

      app_login_log_[yyyymmdd].json

      日志內(nèi)容分割規(guī)則

      文字描述

      l

      接入模型字段(倉(cāng)庫(kù)組補(bǔ)充)

      字段名

      注釋

      字段類型

      必填

      必填

      必填

      必填

      必填

      必填

      l

      抽取參數(shù)(倉(cāng)庫(kù)組補(bǔ)充)

      配置參數(shù)

      參數(shù)取值

      抽數(shù)周期

      每天

      抽數(shù)時(shí)間

      7:00

      文件名匹配條件

      1:全量匹配抽?。ㄆヅ渫ㄅ浞闯槿。?/p>

      2:日期匹配抽取(僅抽取通配符日期字段匹配數(shù)據(jù)日期條件的文件)

      數(shù)據(jù)日期格式

      Yyyymmdd

      Yyyy-mm-dd

      數(shù)據(jù)日期條件

      1:上一天日期

      2:當(dāng)前時(shí)間日期

      3:當(dāng)前時(shí)間歸屬周周日

      4:當(dāng)前時(shí)間歸屬月一號(hào)

      l

      日志清洗轉(zhuǎn)換腳本(倉(cāng)庫(kù)組補(bǔ)填)

      補(bǔ)充腳本位置即可,如t8t-bi-dsc\log-app\log-app.py

      l

      裝載目標(biāo)表(倉(cāng)庫(kù)組補(bǔ)填)

      配置參數(shù)

      參數(shù)取值

      stg層表名稱

      必填

      stg層表描述

      必填

      ods層表名稱

      必填

      ods層表描述

      必填

      app_diary_log

      小程序

      第三篇:課題:SQLServer存儲(chǔ)過(guò)程返回值總結(jié)

      SQLServer存儲(chǔ)過(guò)程返回值總結(jié)

      1.存儲(chǔ)過(guò)程沒(méi)有返回值的情況(即存儲(chǔ)過(guò)程語(yǔ)句中沒(méi)有return之類的語(yǔ)句)

      用方法 int count = ExecuteNonQuery(..)執(zhí)行存儲(chǔ)過(guò)程其返回值只有兩種情況

      (1)假如通過(guò)查詢分析器執(zhí)行該存儲(chǔ)過(guò)程,在顯示欄中假如有影響的行數(shù),則影響幾行count就是幾

      (2)假如通過(guò)查詢分析器執(zhí)行該存儲(chǔ)過(guò)程,在顯示欄中假如顯示'命令已成功完成。'則count =-1;在顯示欄中假如有查詢結(jié)果,則count =-1

      總結(jié):A.ExecuteNonQuery()該方法只返回影響的行數(shù),假如沒(méi)有影響行數(shù),則該方法的返回值只能是-1,不會(huì)為0。

      B.不論ExecuteNonQuery()方法是按照CommandType.StoredProcedure或者CommandType.Text執(zhí)行,其效果和A一樣。

      2.獲得存儲(chǔ)過(guò)程的返回值--通過(guò)查詢分析器獲得

      (1)不帶任何參數(shù)的存儲(chǔ)過(guò)程(存儲(chǔ)過(guò)程語(yǔ)句中含有return)

      ---創(chuàng)建存儲(chǔ)過(guò)程

      CREATE PROCEDURE testReturn

      AS

      return 145

      GO

      ---執(zhí)行存儲(chǔ)過(guò)程

      DECLARE @RC int

      exec @RC=testReturn

      select @RC

      ---說(shuō)明

      查詢結(jié)果為145

      (2)帶輸入?yún)?shù)的存儲(chǔ)過(guò)程(存儲(chǔ)過(guò)程語(yǔ)句中含有return)

      ---創(chuàng)建存儲(chǔ)過(guò)程

      create procedure sp_add_table1

      @in_name varchar(100), @in_addr varchar(100), @in_tel varchar(100)

      as

      if(@in_name = '' or @in_name is null)

      return 1

      else

      begin

      insert into table1(name,addr,tel)values(@in_name,@in_addr,@in_tel)

      return 0

      end

      ---執(zhí)行存儲(chǔ)過(guò)程

      <1>執(zhí)行下列,返回1

      declare @count int exec @count = sp_add_table1 '','中三路','123456' select @count

      <2>執(zhí)行下列,返回0

      declare @count int exec @count = sp_add_table1 '','中三路','123456' select @count

      ---說(shuō)明

      查詢結(jié)果不是0就是1

      (3)帶輸出參數(shù)的存儲(chǔ)過(guò)程(存儲(chǔ)過(guò)程中可以有return可以沒(méi)有return)

      例子A:

      ---創(chuàng)建存儲(chǔ)過(guò)程

      create procedure sp_output

      @output int output

      as

      set @output = 121

      return 1

      ---執(zhí)行存儲(chǔ)過(guò)程

      <1>執(zhí)行下列,返回121

      declare @out int

      exec sp_output @out output

      select @out

      <2>執(zhí)行下列,返回1

      declare @out int

      declare @count int exec @count = sp_output @out output

      select @count

      ---說(shuō)明

      有return,只要查詢輸出參數(shù),則查詢結(jié)果為輸出參數(shù)在存儲(chǔ)過(guò)程中最后變成的值;只要不查詢輸出參數(shù),則查詢結(jié)果為return返回的值

      例子B:

      ---創(chuàng)建存儲(chǔ)過(guò)程

      create procedure sp_output

      @output int output

      as

      set @output = 121

      ---執(zhí)行存儲(chǔ)過(guò)程

      <1>執(zhí)行下列,返回121

      declare @out int

      exec sp_output @out output

      select @out

      <2>執(zhí)行下列,返回0

      declare @out int

      declare @count int

      exec @count = sp_output @out output

      select @count

      ---說(shuō)明

      沒(méi)有return,只要查詢輸出參數(shù),則查詢結(jié)果為輸出參數(shù)在存儲(chǔ)過(guò)程中最后變成的值;只要不查詢輸出參數(shù),則查詢結(jié)果為0

      總結(jié):

      (1)存儲(chǔ)過(guò)程共分為3類:

      A.返回記錄集的存儲(chǔ)過(guò)程---------------------------其執(zhí)行結(jié)果是一個(gè)記錄集,例如:從數(shù)據(jù)庫(kù)中檢索出符合某一個(gè)或幾個(gè)條件的記錄

      B.返回?cái)?shù)值的存儲(chǔ)過(guò)程(也可以稱為標(biāo)量存儲(chǔ)過(guò)程)-----其執(zhí)行完以后返回一個(gè)值,例如:在數(shù)據(jù)庫(kù)中執(zhí)行一個(gè)有返回值的函數(shù)或命令

      C.行為存儲(chǔ)過(guò)程----用來(lái)實(shí)現(xiàn)數(shù)據(jù)庫(kù)的某個(gè)功能,而沒(méi)有返回值,例如:在數(shù)據(jù)庫(kù)中的更新和刪除操作

      (2)含有return的存儲(chǔ)過(guò)程其返回值為return返回的那個(gè)值

      (3)沒(méi)有return的存儲(chǔ)過(guò)程,不論執(zhí)行結(jié)果有無(wú)記錄集,其返回值是0

      (4)帶輸出參數(shù)的存儲(chǔ)過(guò)程:假如有return則返回return返回的那個(gè)值,假如要select輸出參數(shù),則出現(xiàn)輸出參數(shù)的值,于有無(wú)return無(wú)關(guān)

      --------------------3.獲得存儲(chǔ)過(guò)程的返回值--通過(guò)程序獲得

      ---------------------------SqlParameter[] cmdParms = {..,new SqlParameter(“@return”,SqlDbType.Int)};cmdParms[cmdParms.Length1].Direction = ParameterDirection.Output或者 cmdParms[cmdParms.Length1].Value;

      分類: asp.net

      第四篇:MDF文件損壞及沒(méi)有日志文件恢復(fù)的總結(jié)

      MDF文件損壞及沒(méi)有日志文件恢復(fù)的總結(jié)

      大體思路是這樣的:

      1。重建日志

      先建一個(gè)同名的數(shù)據(jù)庫(kù),并且對(duì)應(yīng)的文件名也得相同,停掉數(shù)據(jù)庫(kù),然后到建立的這個(gè)數(shù)據(jù)庫(kù)的目錄下將對(duì)應(yīng)的兩個(gè)文件刪除,然后把MDF拷貝到這個(gè)目錄下。

      啟動(dòng)數(shù)據(jù)庫(kù),便看到這個(gè)數(shù)據(jù)庫(kù)處于置疑狀態(tài)。

      2。消除置疑狀態(tài) USE MASTER GO

      SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE--表示可以更改系統(tǒng)表

      GO

      UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='置疑的數(shù)據(jù)庫(kù)名'--設(shè)置數(shù)據(jù)庫(kù)為緊急模式

      Go

      sp_dboption '置疑的數(shù)據(jù)庫(kù)名', 'single user', 'true'--設(shè)置數(shù)據(jù)庫(kù)為單用戶模式

      Go

      DBCC CHECKDB('置疑的數(shù)據(jù)庫(kù)名')

      --檢查數(shù)據(jù)庫(kù)錯(cuò)誤

      Go

      update sysdatabases set status =28 where name='置疑的數(shù)據(jù)庫(kù)名'--恢復(fù)數(shù)據(jù)庫(kù)為正常模式

      Go

      sp_configure 'allow updates', 0 reconfigure with override Go

      sp_dboption '置疑的數(shù)據(jù)庫(kù)名', 'single user', 'false' Go 這里是最好的恢復(fù),MDF沒(méi)有損壞,上面的語(yǔ)句基本可以滿足

      假如MDF有損壞,并且做DBCC里有N多錯(cuò)誤,數(shù)據(jù)庫(kù)無(wú)法完整修復(fù)里可以考慮允許丟失數(shù)據(jù)修復(fù),方法如下

      use master

      declare @databasename varchar(255)

      set @databasename='要恢復(fù)的數(shù)據(jù)庫(kù)名稱'

      exec sp_dboption @databasename, N'single', N'true'--將目標(biāo)數(shù)據(jù)庫(kù)置為單用戶狀態(tài)

      dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS)

      dbcc checkdb(@databasename,REPAIR_REBUILD)

      exec sp_dboption @databasename, N'single', N'false'--將目標(biāo)數(shù)據(jù)庫(kù)置為多用戶狀態(tài)

      如果順利的話,應(yīng)該能解決問(wèn)題。如果運(yùn)氣實(shí)在不好,以上搞完之后DBCC還是出現(xiàn)錯(cuò)誤,那可以用終極辦法

      對(duì)表做允許數(shù)據(jù)丟失的修復(fù),具體方法如下

      use master

      declare @databasename varchar(255)

      set @databasename='要恢復(fù)的數(shù)據(jù)庫(kù)名稱'

      exec sp_dboption @databasename, N'single', N'true'--將目標(biāo)數(shù)據(jù)庫(kù)置為單用戶狀態(tài)

      exec sp_msforeachtable ?DBCC CHECKTABLE(''?'',REPAIR_ALLOW_DATA_LOSS)?

      exec sp_dboption @databasename, N'single', N'false'--將目標(biāo)數(shù)據(jù)庫(kù)置為多用戶狀態(tài)

      如果你的運(yùn)氣霉到家了,搞完上面的DBCC還是有問(wèn)題,那么可以這樣

      把數(shù)據(jù)庫(kù)導(dǎo)成一個(gè)新庫(kù)來(lái)代替舊庫(kù)

      企業(yè)管理器--右鍵你的數(shù)據(jù)庫(kù)--所有任務(wù)--導(dǎo)出數(shù)據(jù)--目標(biāo)標(biāo)數(shù)據(jù)庫(kù)選擇新建

      --選擇“在兩個(gè)sql數(shù)據(jù)庫(kù)之間復(fù)制對(duì)象和數(shù)據(jù)”--把“包含擴(kuò)展屬性”選上,其他的根據(jù)需要選擇--最后完成這幾步一般會(huì)出現(xiàn)各種各樣的問(wèn)題,大致有這么幾種

      1。出現(xiàn)“未能在數(shù)據(jù)庫(kù) 'approve_new' 中運(yùn)行 BEGIN TRANSACTION,因?yàn)樵摂?shù)據(jù)庫(kù)處于回避恢復(fù)模式。sp_dboption 命令失敗?!?/p>

      出現(xiàn)這樣問(wèn)題的解決: 將數(shù)據(jù)庫(kù)分離后再附加(或者重啟數(shù)據(jù)庫(kù)服務(wù))2。由于文件不可訪問(wèn),或者內(nèi)存或磁盤空間不足,所以無(wú)法打開(kāi)數(shù)據(jù)庫(kù) 'approve_new'。詳細(xì)信息請(qǐng)參閱 SQL Server 錯(cuò)誤日志。

      1)在查詢分析器里執(zhí)行如下語(yǔ)句

      sp_configure 'allow updates', 1 go reconfigure with override go use master go update sysdatabases set status = 32768 where name = 'UFDATA_003_2006' go sp_configure 'allow updates', 0 go reconfigure with override

      2)再在查詢分析器里執(zhí)行如下語(yǔ)句 use master dbcc rebuild_log('數(shù)據(jù)庫(kù)名', '日志物理路徑')--重建日志

      第五篇:SQLServer數(shù)據(jù)庫(kù)入門學(xué)習(xí)總結(jié)

      SQL Server數(shù)據(jù)庫(kù)入門學(xué)習(xí)總結(jié)

      經(jīng)過(guò)一段時(shí)間的學(xué)習(xí),也對(duì)數(shù)據(jù)庫(kù)有了一些認(rèn)識(shí)。

      數(shù)據(jù)庫(kù)基本是由表,關(guān)系,操作組成;對(duì)于初學(xué)者首先要學(xué)的:

      1.數(shù)據(jù)庫(kù)是如何存儲(chǔ)數(shù)據(jù)的表,約束,觸發(fā)器

      2.數(shù)據(jù)庫(kù)是如何操作數(shù)據(jù)的

      insert,update,delete T-sql 函數(shù) 存儲(chǔ)過(guò)程 觸發(fā)器

      3.數(shù)據(jù)庫(kù)是如何顯示數(shù)據(jù)的select

      SQLServer數(shù)據(jù)庫(kù)學(xué)習(xí)總結(jié)

      1.SQL基礎(chǔ)

      SQL Server2000安裝、配置,服務(wù)器啟動(dòng)、停止,企業(yè)管理器、查詢分析器

      第一代數(shù)據(jù)庫(kù)--網(wǎng)狀數(shù)據(jù)庫(kù)和層次數(shù)據(jù)庫(kù);第二代數(shù)據(jù)庫(kù)--關(guān)系數(shù)據(jù)庫(kù)

      數(shù)據(jù)庫(kù)(DB);數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS);數(shù)據(jù)庫(kù)系統(tǒng)(DBS)

      SQL Server 2000 提供了不同版本:企業(yè)版、標(biāo)準(zhǔn)版、個(gè)人版、開(kāi)發(fā)版

      SQL Server中的數(shù)據(jù)類型:整數(shù):int,smallint,tinyint,bigint;浮點(diǎn)數(shù):real,float,decimal;二進(jìn)制:binary,varbinary;邏輯:bit;字符:char,nchar,varchar,nvarchar;文本和圖形:text,ntext,image;日期和時(shí)間:datetime,smalldatetime;貨幣:money,smallmoney

      數(shù)據(jù)庫(kù)的創(chuàng)建和刪除;數(shù)據(jù)庫(kù)表的創(chuàng)建、修改和刪除

      數(shù)據(jù)完整性:實(shí)體完整性:Primary Key,Unique Key,Unique Index,Identity Column;域完整性:Default,Check,Foreign Key,Data type,Rule;參照完整性:Foreign Key,Check,Triggers,Procedure;用戶定義完整性:Rule,Triggers,Procedure;Create Table中得全部列級(jí)和表級(jí)約束

      SQL Server中有5種約束:主鍵約束(Primary Key Constraint)、默認(rèn)約束(Default Constraint)、檢查約束(Check Constraint)、唯一性約束(Unique Constraint)、外鍵約束(Foreign Key Constraint).關(guān)系圖

      數(shù)據(jù)庫(kù)設(shè)計(jì)的步驟:需求分析、概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)庫(kù)物理設(shè)計(jì)、數(shù)據(jù)庫(kù)實(shí)施、數(shù)據(jù)庫(kù)運(yùn)行和維護(hù)

      兩個(gè)實(shí)體之間的聯(lián)系:一對(duì)一(1:1)、一對(duì)多(1:n)、多對(duì)多(m:n)

      實(shí)體關(guān)系模型--E-R圖

      數(shù)據(jù)庫(kù)規(guī)范化:將數(shù)據(jù)庫(kù)的結(jié)構(gòu)精簡(jiǎn)為最簡(jiǎn)單的形式;從表中刪除冗余列;標(biāo)識(shí)所有依賴于其他數(shù)據(jù)庫(kù)的數(shù)據(jù)。

      數(shù)據(jù)庫(kù)三范式:第一范式就是無(wú)重復(fù)的列;第二范式就是非主屬性非部分依賴于主關(guān)鍵字;第三范式就是屬性不依賴于其他非主屬性

      2.SQL語(yǔ)句

      SQL全稱是“結(jié)構(gòu)化查詢語(yǔ)言(Structured Query Language)”

      SQL的4個(gè)部分:

      數(shù)據(jù)定義語(yǔ)言DDL(Data Definition Language)用來(lái)定義數(shù)據(jù)的結(jié)構(gòu):create、alter、drop。

      數(shù)據(jù)控制語(yǔ)言DCL(Data Control Language)用來(lái)控制數(shù)據(jù)庫(kù)組件的存取許可、存取權(quán)限等得命令:grant、revoke。

      數(shù)據(jù)操縱語(yǔ)言DML(Data Manipulation Language)用來(lái)操縱數(shù)據(jù)庫(kù)中得數(shù)據(jù)的命令:insert、update、delete。

      數(shù)據(jù)查詢語(yǔ)言DQL(Data Query Language)用來(lái)查詢數(shù)據(jù)庫(kù)中得數(shù)據(jù)的命令:select。

      SQL中得運(yùn)算符

      :算術(shù)運(yùn)算符、位運(yùn)算符、比較運(yùn)算符、邏輯運(yùn)算符、通配運(yùn)算符、字符串連接符、賦值運(yùn)算符

      3.查詢

      簡(jiǎn)單查詢,使用TOP子句

      查詢結(jié)果排序order by

      帶條件的查詢where,使用算術(shù)表達(dá)式,使用邏輯表達(dá)式,使用between關(guān)鍵字,使用in關(guān)鍵字,模糊查詢like

      在查詢中使用聚合函數(shù):sum(x),avg(x),min(x),max(x),count(x),count(*)使用分組查詢group by,having子句

      distinct關(guān)鍵字

      列別名

      select top 6 * from sales order by qty desc select au_id,au_fname,au_lname

      from

      authors

      where

      state in('ks','ca','mi')

      select au_fname,au_lname,phone from authors where au_id like '72[234]-%' select

      簡(jiǎn)單子查詢:嵌套子查詢、相關(guān)子查詢;子查詢的select語(yǔ)句中不能使用order by子句,roder by子句只能對(duì)最終查詢結(jié)果排序。type,sum(price),avg(price),count(*)

      from

      titles

      group

      by

      type

      having

      type in('business','psycheology')嵌套子查詢:執(zhí)行過(guò)程,先執(zhí)行子查詢,子查詢得到的結(jié)果不被顯示,而是傳給外層查詢,作為外層查詢的條件,然后執(zhí)行外層查詢,并顯示結(jié)果。

      嵌套子查詢的執(zhí)行不依賴于外層查詢,子查詢只執(zhí)行一次。

      帶有比較運(yùn)算符的子查詢,帶有in和not in的子查詢,帶有any或all的子查詢

      相關(guān)子查詢:子查詢?yōu)橥鈱硬樵兊拿恳恍袌?zhí)行一次,外層查詢將子查詢引用的列的值傳給了子查詢。

      相關(guān)子查詢的執(zhí)行依賴于外層查詢,子查詢需要重復(fù)的執(zhí)行。

      帶有exists和not exists的相關(guān)子查詢。

      多表聯(lián)接查詢:內(nèi)聯(lián)接(inner join)、外聯(lián)接((left、right、full)outer join)、自聯(lián)接(self join)和交叉聯(lián)接(cross join)

      在查詢上創(chuàng)建新表:select into語(yǔ)句首先創(chuàng)建一個(gè)新表,然后用查詢的結(jié)果填充新表。

      表別名

      select coursename from course where courseid in(select distinct courseid from grade where grade>10)

      select studname from student where sudbirthday > any(select studbirthday from student where class = '信息系')and class<>'信息系'

      select studname from student where exists(select * from grade where studid = student.studid and courseid = '01')

      select stud1.* from student as stud1 join student as stud2 on stud2.studname = 'mm' and stud1.studsex = stud2.studsex

      select * into girls from student where studsex='m'

      4.視圖、索引和事務(wù)

      視圖是由一個(gè)或多個(gè)數(shù)據(jù)表(基本表)導(dǎo)出的虛擬表或者查詢表,是關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)提供給用戶以多種角度觀察數(shù)據(jù)庫(kù)中數(shù)據(jù)的重要機(jī)制。

      視圖的好處:能夠簡(jiǎn)化用戶的操作;視圖能夠?qū)C(jī)密數(shù)據(jù)提供安全保護(hù)。

      創(chuàng)建視圖時(shí),視圖的名稱存在sysobjects表中。有關(guān)視圖中所定義列的信息添加到syscolumns表中,而有關(guān)視圖相關(guān)性的信息添加到sysdepends表中。另外,create view語(yǔ)句的文本添加到syscomments表中。

      在通過(guò)視圖向表中插入數(shù)據(jù)時(shí),如果insert語(yǔ)句列表中包含有視圖中沒(méi)有選擇的列和不允許為空值的列,這種操作是不允許的。

      創(chuàng)建視圖:create view view_employee as select emp_id,fname,lname from employee 使用視圖:select * from view_employee

      修改視圖:alter view view_employee as select emp_id,fname,job_id from employee where job_id>10

      刪除視圖:drop veiw view_employee 查看視圖結(jié)構(gòu):exec sp_help view_employee

      查看視圖定義信息:exec sp_helptext 'view_employee'

      索引提供了一種基于一列或多列的值對(duì)表的數(shù)據(jù)行進(jìn)行快速訪問(wèn)的方法。索引提供的是表中得邏輯順序。

      聚集索引基于數(shù)據(jù)行的鍵值在表內(nèi)排序和存儲(chǔ)這些數(shù)據(jù)行。當(dāng)數(shù)據(jù)表以某列為關(guān)鍵字建立聚集索引時(shí),表中得數(shù)據(jù)行就以該列(聚集索引鍵)的排序次序進(jìn)行存儲(chǔ)。每個(gè)表只能有一個(gè)聚集索引。

      非聚集索引具有完全獨(dú)立于數(shù)據(jù)行的結(jié)構(gòu),一個(gè)表可以建立多個(gè)非聚集索引。

      創(chuàng)建聚集索引:create clustered index studid_ind on stud(studid)

      創(chuàng)建非聚集索引:create unique index studfullname_ind on stud(fname desc,lname)刪除索引:drop index stud.studid_ind 查看stud表上得索引:exec sp_helpindex stud

      事務(wù)是一種機(jī)制,是一個(gè)操作序列,它包含了一組數(shù)據(jù)庫(kù)操作命令,并且所有的命令作為一個(gè)整體一起向系統(tǒng)提交或撤銷操作請(qǐng)求。

      事務(wù)的特性:原子性(Atomicity)、一致性(Consistenty)、隔離性(Isolation)、永久性(Durability)。事務(wù)分類:顯示事務(wù)、隱性事務(wù)、自動(dòng)提交事務(wù)。

      視圖、索引和事務(wù)的創(chuàng)建、使用、修改和刪除

      5.Transact—SQL編程

      全局變量:由系統(tǒng)定義和維護(hù),其名稱以@@字符開(kāi)頭

      局部變量:由用戶定義和賦值,其名稱以@字符開(kāi)頭

      輸出語(yǔ)句:print

      邏輯控制語(yǔ)句:begin...end;break;case;continue;goto;if...else;return;while 常用函數(shù):行集函數(shù),聚合函數(shù),標(biāo)量函數(shù)

      轉(zhuǎn)換函數(shù):convert(dt,e,s),cast()

      數(shù)學(xué)函數(shù):絕對(duì)值abs(n),向上取整ceiling(n),向下取整floor(n),指定次冪power(n,y),四舍五入round(n,length),求符號(hào)sign(n),平方根sqrt(n)日期

      時(shí)

      數(shù)

      :dateadd(datepart,num,date),datediff(datepart,date1,date2),datename(datepart,date),datepart(datepart,date),getdate(),year(date),month(date),day(date)

      字符串函數(shù):lower(e),upper(e),left(e,i),right(e,i),replace(s1,s2,s3)用3替換1中的2,replicate(e,i)重復(fù)指定次數(shù),stuff(s1,start,length,s2)用2替換1中指定位置,substring(expression,start,length)元數(shù)

      據(jù)

      數(shù)

      :db_id('database_name'),db_name(datebase_id),object_id('obj_name'),object_name(obj_id),col_length('table','column'),col_name(table_id,col_id)聚合函數(shù):avg(expr),count(expr),count(*),max(expr),min(expr),sum(expr)select au_lname,au_fname,contory = case state when 'u

      t' then 'utah' when 'ca' then 'california' else 'world'

      end,city from authors order by state desc

      while(select avg(price)from titles)<30 begin

      update titles set price = price * 2

      if(select max(price)from titles)>50 break else continue end

      print '價(jià)格太高'

      begin

      insert into jobs values('a',80,234)if @@error<>0 print '數(shù)據(jù)插入失敗' else goto M end

      M:print '數(shù)據(jù)插入成功'

      6.游標(biāo)

      游標(biāo)是一種能從包含多條數(shù)據(jù)記錄的結(jié)果集中每次提取一條記錄的機(jī)制。將批操作變成行操作,對(duì)結(jié)果集中得某行進(jìn)行操作。

      declare author_csr cursor read_only for--定義只讀游標(biāo)

      select au_fname,au_lname from authors where state = 'ca' order by au_fname,au_lname declare @lname varchar(20),@fname varchar(20)--定義變量

      open author_csr--打開(kāi)游標(biāo)

      fetch next from author_csr into @lname,@fname--執(zhí)行一次數(shù)據(jù)讀取操作

      while @@fetch_status=0--循環(huán)游標(biāo)讀取數(shù)據(jù)

      begin

      print 'author name:'+@lname+''+@fname fetch next from author_csr into @lname,@fname end

      close author_csr--關(guān)閉游標(biāo)

      deallocate author_csr--釋放游標(biāo)

      7.存儲(chǔ)過(guò)程

      存儲(chǔ)過(guò)程(stored procedure)類似c語(yǔ)言中的函數(shù),是一組為了完成特定功能的SQL語(yǔ)句集,經(jīng)編譯后存儲(chǔ)在數(shù)據(jù)庫(kù)中。用戶通過(guò)指定存儲(chǔ)過(guò)程的名字餅給出參數(shù)來(lái)執(zhí)行它。

      常用的系

      統(tǒng)

      儲(chǔ)

      過(guò)

      :sp_database,sp_helpdb,sp_renamedb,sp_tables,sp_column,sp_help,sp_helpconstraint,sp_helpindex,sp_stored_procedure,sp_password 創(chuàng)建存儲(chǔ)過(guò)程:

      create as

      select @total=count(jy.askbookid)from book,jyls jy where bookname like @book_name and book.isbn=jy.isbn and jy.starttime>=@starttime and endtime<=@endtime procedure book_num

      (@book_name

      varchar(26),@starttime

      datetime,@endtime datetime,@total int output)使用存儲(chǔ)過(guò)程:

      declare @book_name char(26),@total int

      set @book_name='面向?qū)ο蠓治龊驮O(shè)計(jì)'

      exec book_num @book_name,'2007-01-01','2007-11-01',@total output select @book_name as bookname,@total as num

      8.觸發(fā)器

      觸發(fā)器是一種特殊類型的存儲(chǔ)過(guò)程,主要是通過(guò)實(shí)踐進(jìn)行觸發(fā)而被執(zhí)行。

      觸發(fā)器的主要作用就是能夠?qū)崿F(xiàn)由主鍵和外鍵所不能保證的復(fù)雜的參照完整性和數(shù)據(jù)的一致性。其他功能:強(qiáng)化約束,跟蹤變化,級(jí)聯(lián)運(yùn)行,存儲(chǔ)過(guò)程調(diào)用。

      SQL Server 2000支持兩種類型觸發(fā)器:

      after觸發(fā)器:要求只有執(zhí)行某一操作之后,觸發(fā)器才被執(zhí)行,且只能在表上定義。

      instead of觸發(fā)器:表示并不執(zhí)行其所定義的操作,而僅是執(zhí)行觸發(fā)器本身。既可以在表上定義,也可以在視圖上定義,但對(duì)同一操作只能定義一個(gè)instead of觸發(fā)器。

      工作原理:

      當(dāng)觸發(fā)insert觸發(fā)器時(shí),新的數(shù)據(jù)行就會(huì)被插入到觸發(fā)器表和inserted表中。觸發(fā)器通過(guò)檢查inserted表來(lái)確定是否執(zhí)行觸發(fā)器動(dòng)作或如何執(zhí)行。

      當(dāng)在定義有觸

      發(fā)器的表上執(zhí)行update語(yǔ)句時(shí),原始行被移入到deleted表,更新行被移入inserted表。觸發(fā)器檢查deleted表和inserted表以及被更新的表,來(lái)確定是否更新了多行以及如何執(zhí)行觸發(fā)器動(dòng)作。

      當(dāng)觸發(fā)deleted觸發(fā)器后,從受影響的表中刪除的行將被放置到一個(gè)特殊的deleted表中。

      create trigger update_smoke_t_sale on smoke_t_sale for update as

      declare @newsalenum int,@smokeproductname varchar(40)select @newsalenum= salenum from inserted

      select @smokeproductname=smokeproductname from inserted if update(salenum)--判斷是否更新

      begin update smoke_t_sale

      set

      saletotalprice=@newsalenum

      *

      saleprice

      where smokeproductname=@smokeproductname

      insert into smoke_log(logContent)values('更新成功')end else

      print '未更新'

      9.數(shù)據(jù)庫(kù)高級(jí)管理

      SQL Server安全體系結(jié)構(gòu),4個(gè)等級(jí):客戶機(jī)操作系統(tǒng)的安全性,SQL Server的登錄安全性,數(shù)據(jù)庫(kù)的使用安全性,數(shù)據(jù)對(duì)象的使用安全性 SQL Server驗(yàn)證模式:windows身份驗(yàn)證模式和混合模式(windows身份驗(yàn)證和SQL Server身份驗(yàn)證)

      登錄賬戶:用戶登錄(連接)SQL Server服務(wù)器的賬戶和密碼。

      角色管理:服務(wù)器角色(負(fù)責(zé)管理和維護(hù)SQL Server的組);數(shù)據(jù)庫(kù)角色(是對(duì)某個(gè)數(shù)據(jù)庫(kù)具有相同訪問(wèn)權(quán)限的用戶賬戶和組的集合)

      數(shù)據(jù)庫(kù)用戶:對(duì)于每個(gè)要求訪問(wèn)數(shù)據(jù)庫(kù)的登錄賬戶,必須在要訪問(wèn)的數(shù)據(jù)庫(kù)中建立該數(shù)據(jù)庫(kù)的訪問(wèn)賬戶,且與其登錄賬戶鏈接關(guān)聯(lián),才可進(jìn)入該數(shù)據(jù)庫(kù)訪問(wèn)。

      權(quán)限管理:是指用戶是否能進(jìn)行訪問(wèn)數(shù)據(jù)庫(kù)資源的相應(yīng)操作。權(quán)限包括:語(yǔ)句權(quán)限、對(duì)象權(quán)限和暗示權(quán)限。

      授予權(quán)限:

      grant 語(yǔ)句 [...] to 安全賬戶[...]

      grant 權(quán)限 [...] on 表或視圖[(列[,...])]|on 存儲(chǔ)過(guò)程|on用戶自定義函數(shù) to 安全賬戶[,...] 拒絕權(quán)限:

      deny 語(yǔ)句 [...] to 安全賬戶[...]

      deny 權(quán)限 [...] on 表或視圖[(列[,...])]|on 存儲(chǔ)過(guò)程|on用戶自定義函數(shù) to 安全賬戶[,...] 撤銷權(quán)限:

      revoke 語(yǔ)句 [...] from 安全賬戶[...]

      revoke 權(quán)限 [...] on 表或視圖[(列[,...])]|on 存儲(chǔ)過(guò)程|on用戶自定義函數(shù) from 安全賬戶[,...]

      備份和恢復(fù):

      數(shù)據(jù)庫(kù)備份設(shè)備,在進(jìn)行數(shù)據(jù)庫(kù)備份之前,首先要?jiǎng)?chuàng)建備份設(shè)備。包括:磁盤、磁帶和命名管道

      SQL Server 備份策略:只備份數(shù)據(jù)庫(kù)、備份數(shù)據(jù)庫(kù)和事務(wù)日志、差異備份。

      backup database medicaldb to disk='medical_bk1' with name='medicaldb backup' description='medicaldb fullbackup' init restore database medicaldb from medical_bk1

      導(dǎo)入導(dǎo)出:

      DTS(Data Transformation Service)是SQL Server提供的數(shù)據(jù)傳輸服務(wù)。使用戶可以將來(lái)自完全不同數(shù)據(jù)源的數(shù)據(jù)析取、轉(zhuǎn)換并合并到單個(gè)或多個(gè)目的。

      分離與附加:創(chuàng)建可移動(dòng)的數(shù)據(jù)庫(kù)。

      下載sqlserver日志文件總結(jié)及充滿處理word格式文檔
      下載sqlserver日志文件總結(jié)及充滿處理.doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        藤縣國(guó)有資產(chǎn)處理文件

        藤縣人民政府文件 藤政發(fā)〔2010〕39號(hào) 藤縣人民政府關(guān)于印發(fā)我縣國(guó)有資產(chǎn)處置(暫行)辦法的 通 知各鄉(xiāng)鎮(zhèn)人民政府,縣政府各部門: 《藤縣國(guó)有資產(chǎn)處置(暫行)辦法》已經(jīng)縣人民政府......

        辦公室文件處理實(shí)施辦法

        中共洱源縣委辦公室文件處理實(shí)施辦法一、收文辦理(一)收文辦理是指將收到的請(qǐng)示和其他需要報(bào)請(qǐng)領(lǐng)導(dǎo)批示的文件、材料按一定程序辦理的過(guò)程。 (二)收文辦理使用《文件處理箋》。......

        文件筐處理案例

        實(shí)訓(xùn)課 課 題:文件筐處理 教學(xué)基本要求:提高學(xué)員的決策、判斷、口頭表達(dá)與書(shū)面溝通能力,以便能面對(duì)現(xiàn)實(shí)同樣的情景能自如處理與應(yīng)對(duì)。 教學(xué)手段方法:情景模擬【情境】 輝躍制藥......

        緊急文件處理要求(5篇可選)

        緊急文件處理要求 1、特提:十分緊急要求隨到隨辦,必須立即辦理。 2、特急:內(nèi)容重要特別緊急,需要優(yōu)先迅速傳遞處理的文件,須2日內(nèi)辦理。 3、加急:須加緊處理的緊急文件,須4日內(nèi)辦理......

        文件處理座談會(huì)講話(精選5篇)

        現(xiàn)將相關(guān)情況匯報(bào)如下: 1、在對(duì)中央文件和自治區(qū)文件管理工作努力做到及時(shí)、準(zhǔn)確、安全、保密。在收發(fā)文件、處理文件、管理文件上,堅(jiān)持按管理要求辦理、照章行事。及時(shí)將收文......

        pdfmaker文件遺失該如何處理

        pdfmaker文件遺失該如何處理 關(guān)于Adobe Acrobat Professional 8.0 PDFMaker文件遺失的問(wèn)題,現(xiàn)在來(lái)看一下相關(guān)解決方法,本文由烈火學(xué)院小編收集于網(wǎng)絡(luò),感謝原作者的辛苦勞動(dòng)!相信......

        實(shí)習(xí)日志總結(jié)

        實(shí)習(xí)總結(jié)有一名話叫做:不經(jīng)過(guò)風(fēng)雨,怎么見(jiàn)彩虹?我想改一下:不真正進(jìn)入社會(huì),怎能了解社會(huì)呢? 在這次實(shí)習(xí)中,給我收獲最大的是我覺(jué)得很多工作需要我去摸索和探討,要不怕吃苦,勇于激流勇......

        實(shí)習(xí)總結(jié)日志

        實(shí)習(xí)總結(jié)日志2010-02-20 15:02今天是實(shí)習(xí)的最后一天了,來(lái)到辦公室,拿了昨天的報(bào)紙,實(shí)習(xí)總結(jié)日志。幾天沒(méi)有寫(xiě)實(shí)習(xí)日記了,今天還是動(dòng)手寫(xiě)點(diǎn)吧。昨天,寫(xiě)了一個(gè)稿子,我覺(jué)得相當(dāng)無(wú)語(yǔ)。2......