最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解析SQL Server 視圖、數(shù)據(jù)庫(kù)快照

 更新時(shí)間:2015年08月14日 11:48:17   投稿:mrr  
在程序開(kāi)發(fā)過(guò)程中,任何一個(gè)項(xiàng)目都離不開(kāi)數(shù)據(jù)庫(kù),這篇文章給大家詳細(xì)介紹SQL Server 視圖、數(shù)據(jù)庫(kù)快照相關(guān)內(nèi)容,需要的朋友可以參考下

簡(jiǎn)介數(shù)據(jù)庫(kù)快照

      數(shù)據(jù)庫(kù)快照,正如其名稱(chēng)所示那樣,是數(shù)據(jù)庫(kù)在某一時(shí)間點(diǎn)的視圖。是SQL Server在2005之后的版本引入的特性。快照的應(yīng)用場(chǎng)景比較多,但快照設(shè)計(jì)最開(kāi)始的目的是為了報(bào)表服務(wù)。比如我需要出2011的資產(chǎn)負(fù)債表,這需要數(shù)據(jù)保持在2011年12月31日零點(diǎn)時(shí)的狀態(tài),則利用快照可以實(shí)現(xiàn)這一點(diǎn)??煺者€可以和鏡像結(jié)合來(lái)達(dá)到讀寫(xiě)分離的目的。下面我們來(lái)看什么是快照。

什么是快照

    數(shù)據(jù)庫(kù)快照是 SQL Server 數(shù)據(jù)庫(kù)(源數(shù)據(jù)庫(kù))的只讀靜態(tài)視圖。換句話說(shuō),快照可以理解為一個(gè)只讀的數(shù)據(jù)庫(kù)。利用快照,可以提供如下好處:

    提供了一個(gè)靜態(tài)的視圖來(lái)為報(bào)表提供服務(wù)

    可以利用數(shù)據(jù)庫(kù)快照來(lái)恢復(fù)數(shù)據(jù)庫(kù),相比備份恢復(fù)來(lái)說(shuō),這個(gè)速度會(huì)大大提高(在下面我會(huì)解釋為什么)

    和數(shù)據(jù)庫(kù)鏡像結(jié)合使用,提供讀寫(xiě)分離

    作為測(cè)試環(huán)境或數(shù)據(jù)變更前的備份,比如我要大批導(dǎo)入或刪除數(shù)據(jù)前,或是將數(shù)據(jù)提供給測(cè)試人員進(jìn)行測(cè)試前,做一個(gè)快照,如果出現(xiàn)問(wèn)題,則可以利用快照恢復(fù)到快照建立時(shí)的狀態(tài)

SQL Server 視圖

什么是視圖?

視圖是一個(gè)虛擬的表,內(nèi)容源于查詢(xún)的結(jié)果集。只有當(dāng)視圖上建立了索引后,才會(huì)具體化。

視圖可以篩選和處理數(shù)據(jù),而不是直接訪問(wèn)基礎(chǔ)表。如:創(chuàng)建一個(gè)視圖,只展示源表中的幾列數(shù)據(jù),無(wú)需授予用戶(hù)訪問(wèn)基礎(chǔ)表的權(quán)限,取而代之的是授予視圖訪問(wèn)權(quán)限。

為什么用視圖?

1、如果是比較復(fù)雜的多表聯(lián)查,可以將這些復(fù)雜的語(yǔ)句放在視圖中完成,而我們只需要使用簡(jiǎn)單的語(yǔ)句查詢(xún)視圖即可。

2、保護(hù)基礎(chǔ)表,敏感列無(wú)法被檢索出。

3、對(duì)視圖添加索引,可以提高效率。

創(chuàng)建視圖

1、可以使用SSMS工具創(chuàng)建, 視圖->新建視圖->選表 選列 ->輸入名字保存即可。

2、使用T-SQL創(chuàng)建

if exists(select * from sysobjects where name = 'newView') --如果存在刪除
  drop view newView
go
create view newView --創(chuàng)建視圖
as
select 學(xué)號(hào)=id,姓名=name,年齡=age from student
go
select * from newView

關(guān)于order by

if exists(select * from sysobjects where name = 'newView') --如果存在刪除
  drop view newView
go
create view newView --創(chuàng)建視圖
as
select top 10 學(xué)號(hào)=id,姓名=name,年齡=age from student
order by id desc --如果使用order關(guān)鍵字 則必須指定top
go
select * from newView

修改視圖

alter view newView
as
select top 20 * from student
order by id desc --如果使用order關(guān)鍵字 則必須指定top
go

更新架構(gòu)

--剛剛修改的視圖用的是 * 查詢(xún)的是全部列
--此時(shí)修改基礎(chǔ)表架構(gòu)
alter table student add mail varchar(20)

--這時(shí)源表已經(jīng)更新架構(gòu),但是視圖并沒(méi)有改變 需要調(diào)用系統(tǒng)存儲(chǔ)過(guò)程更新一下
EXEC sp_refreshview studentView
--這時(shí) 新的列才會(huì)被加進(jìn)來(lái)

更新視圖

對(duì)視圖進(jìn)行增、刪、改操作,其實(shí)就是修改源表。但是由于諸多限制(如由多表聯(lián)查出的視圖,只檢索出個(gè)別字段,但是插入的時(shí)候有些源表上的值是非空的就會(huì)出問(wèn)題),一般不修改視圖。

所以更新源表即可更新視圖。

數(shù)據(jù)庫(kù)快照

數(shù)據(jù)庫(kù)快照是某一時(shí)間點(diǎn)的源數(shù)據(jù)庫(kù)的只讀靜態(tài)視圖,可以用來(lái)恢復(fù)數(shù)據(jù)庫(kù)。

使用數(shù)據(jù)庫(kù)快照必須與源數(shù)據(jù)庫(kù)在相同的服務(wù)器實(shí)例,并且不能對(duì)源數(shù)據(jù)庫(kù)進(jìn)行刪除、分離、或還原操作。

使用數(shù)據(jù)庫(kù)快照

--源表中數(shù)據(jù)
use webDB
go
select * from student

if exists(select * from sys.databases where name = 'webDB_DBSS')
drop database webDB_DBSS --存在則刪除
go
create database webDB_DBSS --創(chuàng)建數(shù)據(jù)庫(kù)快照
on
(
  name = webDB,
  filename='d:\webDB_DBSS.ss' --注意后綴.ss
) --如果有多個(gè)文件需要一一指出
as snapshot of webDB
go

--修改源數(shù)據(jù)庫(kù)數(shù)據(jù)
use webDB
go
update student set name='偉大' where id = 10 

--查詢(xún)?cè)磾?shù)據(jù)庫(kù)數(shù)據(jù)
select * from student where id = 10 

--查詢(xún)快照數(shù)據(jù)
use webDB_DBSS
go
select * from student where id = 10 

 

修改源數(shù)據(jù)庫(kù),快照數(shù)據(jù)庫(kù)并未發(fā)生改變。

--修改student表架構(gòu)
alter table webDB.dbo.student add [address] varchar(20)
select * from webDB.dbo.student

--快照中依然沒(méi)有
select * from webDB_DBSS.dbo.student 

--刪除源數(shù)據(jù)庫(kù)student表
drop table webDB.dbo.newTable 

--查詢(xún)數(shù)據(jù)庫(kù)快照該表 依然存在
select * from webDB_DBSS.dbo.newTable

從快照恢復(fù)數(shù)據(jù)到快照創(chuàng)建時(shí)刻

restore database webDB
from database_snapshot='webDB_DBSS'
go

select * from webDB.dbo.student --修改的值被改回

select * from webDb.dbo.newTable --被刪除的表 改回

以上得知:任何創(chuàng)建快照之后的修改數(shù)據(jù)都將被改回!

相關(guān)文章

  • mysql?樂(lè)觀鎖和悲觀鎖的具體使用

    mysql?樂(lè)觀鎖和悲觀鎖的具體使用

    本文主要介紹了mysql?樂(lè)觀鎖和悲觀鎖的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • MySQL數(shù)據(jù)庫(kù)21條最佳性能優(yōu)化經(jīng)驗(yàn)

    MySQL數(shù)據(jù)庫(kù)21條最佳性能優(yōu)化經(jīng)驗(yàn)

    數(shù)據(jù)庫(kù)的操作越來(lái)越成為整個(gè)應(yīng)用的性能瓶頸了,這點(diǎn)對(duì)于Web應(yīng)用尤其明顯。這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)21條最佳性能優(yōu)化經(jīng)驗(yàn)的相關(guān)資料,需要的朋友可以參考下
    2016-10-10
  • mysql數(shù)據(jù)庫(kù)您要的常見(jiàn)日期查詢(xún)方法總結(jié)

    mysql數(shù)據(jù)庫(kù)您要的常見(jiàn)日期查詢(xún)方法總結(jié)

    這篇文章主要介紹了MySQL中常用日期查詢(xún)的20種方法,包括查詢(xún)今天、昨天、近7天、近30天等數(shù)據(jù),以及查詢(xún)特定日期的周、月、季度和年份數(shù)據(jù),需要的朋友可以參考下
    2025-02-02
  • mysql-5.7.42升級(jí)到mysql-8.2.0(二進(jìn)制方式)

    mysql-5.7.42升級(jí)到mysql-8.2.0(二進(jìn)制方式)

    隨著數(shù)據(jù)量的增長(zhǎng)和業(yè)務(wù)需求的變更,我們可能需要升級(jí)MySQL,本文主要介紹了mysql-5.7.42升級(jí)到mysql-8.2.0(二進(jìn)制方式),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • MYSQL替換時(shí)間(年月日)字段時(shí)分秒不變實(shí)例解析

    MYSQL替換時(shí)間(年月日)字段時(shí)分秒不變實(shí)例解析

    這篇文章主要介紹了MYSQL替換時(shí)間(年月日)字段,時(shí)分秒不變的實(shí)現(xiàn)方法,需要的朋友可以參考下
    2017-07-07
  • MySQL學(xué)習(xí)筆記4:完整性約束限制字段

    MySQL學(xué)習(xí)筆記4:完整性約束限制字段

    完整性約束是對(duì)字段進(jìn)行限制,從而符合該字段達(dá)到我們期望的效果比如字段含有默認(rèn)值,不能是NULL等如果插入的數(shù)據(jù)不滿(mǎn)足限制要求,數(shù)據(jù)庫(kù)管理系統(tǒng)就拒絕執(zhí)行操作
    2013-01-01
  • mysql installer community 8.0.16.0安裝配置圖文教程

    mysql installer community 8.0.16.0安裝配置圖文教程

    這篇文章主要為大家詳細(xì)介紹了mysql installer community 8.0.16.0安裝配置圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • MySQL8.0之CTE(公用表表達(dá)式)的使用

    MySQL8.0之CTE(公用表表達(dá)式)的使用

    本文主要介紹了MySQL8.0之CTE(公用表表達(dá)式)的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • mysql中的多個(gè)字段最大最小值

    mysql中的多個(gè)字段最大最小值

    這篇文章主要介紹了mysql中的多個(gè)字段最大最小值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • 運(yùn)用mysqldump 工具時(shí)需要注意的問(wèn)題

    運(yùn)用mysqldump 工具時(shí)需要注意的問(wèn)題

    用mysqldump 導(dǎo)出 Trigger 的時(shí)候遇到一個(gè)問(wèn)題,貼出來(lái),以免大家犯錯(cuò)。
    2009-07-07

最新評(píng)論

正定县| 汾阳市| 上林县| 荣昌县| 奉新县| 江西省| 界首市| 那曲县| 怀化市| 安仁县| 彰武县| 牡丹江市| 阜康市| 福海县| 济宁市| 东乡族自治县| 文登市| 广昌县| 介休市| 盐边县| 汉源县| 抚宁县| 屯留县| 宝应县| 大安市| 东源县| 庆云县| 滦平县| 蓬莱市| 新安县| 高尔夫| 海兴县| 鄂托克前旗| 莒南县| 镇坪县| 丁青县| 鄱阳县| 龙门县| 四川省| 革吉县| 肃北|