国产精品网站在线观看免费传媒,国产强被迫伦姧无码,欧 国产成人欧美一区二区三区vr_制服丝袜在线日韩_丝瓜

SQL Server 2000常用命令,語(yǔ)法使用方法

2013/2/6 17:34:421480 閱讀

    (1) 數(shù)據(jù)記錄篩選:

    sql="select * from 數(shù)據(jù)表 where 字段名=字段值 order by 字段名 [desc]"
    sql="select * from 數(shù)據(jù)表 where 字段名 like '%字段值%' order by 字段名 [desc]"
    sql="select top 10 * from 數(shù)據(jù)表 where 字段名 order by 字段名 [desc]"
    sql="select * from 數(shù)據(jù)表 where 字段名 in ('值1','值2','值3')"
    sql="select * from 數(shù)據(jù)表 where 字段名 between 值1 and 值2"

    (2) 更新數(shù)據(jù)記錄:

    sql="update 數(shù)據(jù)表 set 字段名=字段值 where 條件表達(dá)式"
    sql="update 數(shù)據(jù)表 set 字段1=值1,字段2=值2 …… 字段n=值n where 條件表達(dá)式"

    (3) 刪除數(shù)據(jù)記錄:

    sql="delete from 數(shù)據(jù)表 where 條件表達(dá)式"
    sql="delete from 數(shù)據(jù)表" (將數(shù)據(jù)表所有記錄刪除)

    (4) 添加數(shù)據(jù)記錄:

    sql="insert into 數(shù)據(jù)表 (字段1,字段2,字段3 …) values (值1,值2,值3 …)"
    sql="insert into 目標(biāo)數(shù)據(jù)表 select * from 源數(shù)據(jù)表" (把源數(shù)據(jù)表的記錄添加到目標(biāo)數(shù)據(jù)表)

    (5) 數(shù)據(jù)記錄統(tǒng)計(jì)函數(shù):

    AVG(字段名) 得出一個(gè)表格欄平均值
    COUNT(*|字段名) 對(duì)數(shù)據(jù)行數(shù)的統(tǒng)計(jì)或?qū)δ骋粰谟兄档臄?shù)據(jù)行數(shù)統(tǒng)計(jì)
    MAX(字段名) 取得一個(gè)表格欄最大的值
    MIN(字段名) 取得一個(gè)表格欄最小的值
    SUM(字段名) 把數(shù)據(jù)欄的值相加

    引用以上函數(shù)的方法:

    sp_helpdb 查看數(shù)據(jù)庫(kù)

    go

    use

    數(shù)據(jù)庫(kù)名

    go

    select * from sysobjects where xtype='u' 查看數(shù)據(jù)庫(kù)中有什么數(shù)據(jù)表

    go

    sp_help 數(shù)據(jù)表名 查看數(shù)據(jù)表的結(jié)構(gòu)

    go

    sql="select sum(字段名) as 別名 from 數(shù)據(jù)表 where 條件表達(dá)式"

    set rs=conn.excute(sql)

    用 rs("別名") 獲取統(tǒng)的計(jì)值,其它函數(shù)運(yùn)用同上。

    (5) 數(shù)據(jù)表的建立和刪除:

    CREATE TABLE 數(shù)據(jù)表名稱(字段1 類型1(長(zhǎng)度),字段2 類型2(長(zhǎng)度) …… )

    例:CREATE TABLE tab01(name varchar(50),datetime default now())

    DROP TABLE 數(shù)據(jù)表名稱 (永久性刪除一個(gè)數(shù)據(jù)表)

    4. 記錄集對(duì)象的方法:

    rs.movenext 將記錄指針從當(dāng)前的位置向下移一行
    rs.moveprevious 將記錄指針從當(dāng)前的位置向上移一行
    rs.movefirst 將記錄指針移到數(shù)據(jù)表第一行
    rs.movelast 將記錄指針移到數(shù)據(jù)表最后一行
    rs.absoluteposition=N 將記錄指針移到數(shù)據(jù)表第N行
    rs.absolutepage=N 將記錄指針移到第N頁(yè)的第一行
    rs.pagesize=N 設(shè)置每頁(yè)為N條記錄

    2、更改表格

    ALTER TABLE table_name

    ADD COLUMN column_name DATATYPE

    說(shuō)明:增加一個(gè)欄位(沒(méi)有刪除某個(gè)欄位的語(yǔ)法。

    ALTER TABLE table_name

    ADD PRIMARY KEY (column_name)

    說(shuō)明:更改表得的定義把某個(gè)欄位設(shè)為主鍵。

    ALTER TABLE table_name

    DROP PRIMARY KEY (column_name)

    說(shuō)明:把主鍵的定義刪除。

    3、建立索引

    CREATE INDEX index_name ON table_name (column_name)

    說(shuō)明:對(duì)某個(gè)表格的欄位建立索引以增加查詢時(shí)的速度。

    4、刪除

    DROP table_name

    DROP index_name

    二、的資料形態(tài) DATATYPEs

    smallint

    16 位元的整數(shù)。

    interger

    32 位元的整數(shù)。

    decimal(p,s)

    p 精確值和 s 大小的十進(jìn)位整數(shù),精確值p是指全部有幾個(gè)數(shù)(digits)大小值,s是指小數(shù)

    點(diǎn)後有幾位數(shù)。如果沒(méi)有特別指定,則系統(tǒng)會(huì)設(shè)為 p=5; s=0 。

    float

    32位元的實(shí)數(shù)。

    double

    64位元的實(shí)數(shù)。

    char(n)

    n 長(zhǎng)度的字串,n不能超過(guò) 254。

    varchar(n)

    長(zhǎng)度不固定且其最大長(zhǎng)度為 n 的字串,n不能超過(guò) 4000。

    graphic(n)

    和 char(n) 一樣,不過(guò)其單位是兩個(gè)字元 double-bytes, n不能超過(guò)127。這個(gè)形態(tài)是為

    了支援兩個(gè)字元長(zhǎng)度的字體,例如中文字。

    vargraphic(n)

    可變長(zhǎng)度且其最大長(zhǎng)度為 n 的雙字元字串,n不能超過(guò) 2000。

    date

    包含了 年份、月份、日期。

    time

    包含了 小時(shí)、分鐘、秒。

    timestamp

    包含了 年、月、日、時(shí)、分、秒、千分之一秒。

    三、資料操作 DML (Data Manipulation Language)

    資料定義好之後接下來(lái)的就是資料的操作。資料的操作不外乎增加資料(insert)、查詢資料(query)、更改資料(update) 、刪除資料(delete)四種模式,以下分 別介紹他們的語(yǔ)法:

    1、增加資料:

    INSERT INTO table_name (column1,column2,...)

    valueS ( value1,value2, ...)

    說(shuō)明:

    1.若沒(méi)有指定column 系統(tǒng)則會(huì)按表格內(nèi)的欄位順序填入資料。

    2.欄位的資料形態(tài)和所填入的資料必須吻合。

    3.table_name 也可以是景觀 view_name。

    INSERT INTO table_name (column1,column2,...)

    SELECT columnx,columny,... FROM another_table

    說(shuō)明:也可以經(jīng)過(guò)一個(gè)子查詢(subquery)把別的表格的資料填入。

    2、查詢資料:

    基本查詢

    SELECT column1,columns2,...

    FROM table_name

    說(shuō)明:把table_name 的特定欄位資料全部列出來(lái)

    SELECT *

    FROM table_name

    WHERE column1 = xxx

    [AND column2 > yyy] [OR column3 <> zzz]

    三)交叉連接

    交叉連接不帶WHERE 子句,它返回被連接的兩個(gè)表所有數(shù)據(jù)行的笛卡爾積,返回到結(jié)果集合中的數(shù)

    據(jù)行數(shù)等于第一個(gè)表中符合查詢條件的數(shù)據(jù)行數(shù)乘以第二個(gè)表中符合查詢條件的數(shù)據(jù)行數(shù)。

    例,titles表中有6類圖書,而publishers表中有8家出版社,則下列交叉連接檢索到的記錄數(shù)將等

    于6*8=48行。

    SELECT type,pub_name

    FROM titles CROSS JOIN publishers

    ORDER BY type

    UNION運(yùn)算符可以將兩個(gè)或兩個(gè)以上上SELECT語(yǔ)句的查詢結(jié)果集合合并成一個(gè)結(jié)果集合顯示,即執(zhí)行聯(lián)合查詢。UNION的語(yǔ)法格式為:

    select_statement

    UNION [ALL] selectstatement

    [UNION [ALL] selectstatement][…n]

    其中selectstatement為待聯(lián)合的SELECT查詢語(yǔ)句。

    ALL選項(xiàng)表示將所有行合并到結(jié)果集合中。不指定該項(xiàng)時(shí),被聯(lián)合查詢結(jié)果集合中的重復(fù)行將只保留一

    行。

    聯(lián)合查詢時(shí),查詢結(jié)果的列標(biāo)題為第一個(gè)查詢語(yǔ)句的列標(biāo)題。因此,要定義列標(biāo)題必須在第一個(gè)查詢語(yǔ)

    句中定義。要對(duì)聯(lián)合查詢結(jié)果排序時(shí),也必須使用第一查詢語(yǔ)句中的列名、列標(biāo)題或者列序號(hào)。

    在使用UNION 運(yùn)算符時(shí),應(yīng)保證每個(gè)聯(lián)合查詢語(yǔ)句的選擇列表中有相同數(shù)量的表達(dá)式,并且每個(gè)查詢選

    擇表達(dá)式應(yīng)具有相同的數(shù)據(jù)類型,或是可以自動(dòng)將它們轉(zhuǎn)換為相同的數(shù)據(jù)類型。在自動(dòng)轉(zhuǎn)換時(shí),對(duì)于數(shù)值類

    型,系統(tǒng)將低精度的數(shù)據(jù)類型轉(zhuǎn)換為高精度的數(shù)據(jù)類型。

    在包括多個(gè)查詢的UNION語(yǔ)句中,其執(zhí)行順序是自左至右,使用括號(hào)可以改變這一執(zhí)行順序。例如:

    查詢1 UNION (查詢2 UNION 查詢3)

    INSERT語(yǔ)句

    用戶可以用INSERT語(yǔ)句將一行記錄插入到指定的一個(gè)表中。例如,要將雇員John Smith的記錄插入到本例的表中,可以使用如下語(yǔ)句:

    INSERT INTO EMPLOYEES valueS

    ('Smith','John','1980-06-10',

    'Los Angles',16,45000);

    通過(guò)這樣的INSERT語(yǔ)句,系統(tǒng)將試著將這些值填入到相應(yīng)的列中。這些列按照我們創(chuàng)建表時(shí)定義的順序排列。在本例中,第一個(gè)值“Smith”將填到第一個(gè)列LAST_NAME中;第二個(gè)值“John”將填到第二列FIRST_NAME中……以此類推。

    我們說(shuō)過(guò)系統(tǒng)會(huì)“試著”將值填入,除了執(zhí)行規(guī)則之外它還要進(jìn)行類型檢查。如果類型不符(如將一個(gè)字符串填入到類型為數(shù)字的列中),系統(tǒng)將拒絕這一次操作并返回一個(gè)錯(cuò)誤信息。

    如果SQL拒絕了你所填入的一列值,語(yǔ)句中其他各列的值也不會(huì)填入。這是因?yàn)镾QL提供對(duì)事務(wù)的支持。一次事務(wù)將數(shù)據(jù)庫(kù)從一種一致性轉(zhuǎn)移到另一種一致性。如果事務(wù)的某一部分失敗,則整個(gè)事務(wù)都會(huì)失敗,系統(tǒng)將會(huì)被恢復(fù)(或稱之為回退)到此事務(wù)之前的狀態(tài)。

    回到原來(lái)的INSERT的例子,請(qǐng)注意所有的整形十進(jìn)制數(shù)都不需要用單引號(hào)引起來(lái),而字符串和日期類型的值都要用單引號(hào)來(lái)區(qū)別。為了增加可讀性而在數(shù)字間插入逗號(hào)將會(huì)引起錯(cuò)誤。記住,在SQL中逗號(hào)是元素的分隔符。

    同樣要注意輸入文字值時(shí)要使用單引號(hào)。雙引號(hào)用來(lái)封裝限界標(biāo)識(shí)符。

    對(duì)于日期類型,我們必須使用SQL標(biāo)準(zhǔn)日期格式(yyyy-mm-dd)



    --設(shè)置用戶訪問(wèn)數(shù)據(jù)庫(kù)的形式 Alter database TestAA set SINGLE_USER with rollback immediate --設(shè)置單用戶訪問(wèn)數(shù)據(jù)庫(kù)

    Alter database TestAA set RESTRICTED_USER with rollback immediate

    RESTRICTED_USER 只允許 db_owner 固定數(shù)據(jù)庫(kù)角色成員以及 dbcreator 和 sysadmin 固定服務(wù)器角色成員連接到數(shù)據(jù)庫(kù),不過(guò)對(duì)連接數(shù)沒(méi)有限制。在 ALTER DATABASE 語(yǔ)句的終止子句所指定的時(shí)間范圍內(nèi),所有數(shù)據(jù)庫(kù)連接都將被斷開。在數(shù)據(jù)庫(kù)轉(zhuǎn)換到 RESTRICTED_USER 狀態(tài)后,不合格用戶所做的連接嘗試將被拒絕。

    Alter database TestAA set MULTI_USER with rollback immediate --設(shè)置用戶正常訪問(wèn)

    --設(shè)置數(shù)據(jù)庫(kù)恢復(fù)模式

    sql 2008 不支持nolog 和 truncate_only 如果要截?cái)嗳罩镜脑?,需要先把?shù)據(jù)庫(kù)搞成簡(jiǎn)單模型,然后在收縮日志,在改成完全模式。備份一次數(shù)據(jù)庫(kù)。

    Alter database set recovery {simple/full/bulk_logged}

    dbcc shrinkfile('filename',10)

    --導(dǎo)出數(shù)據(jù)到文本

    --EXEC master..xp_cmdshell 'bcp "Select cdoc_id,csubject from cmsdbquery..tbl_article" queryout c:\DT.txt -c -SXXXXX -Usa -PXXXXX'

    --跟蹤腳本需要打開的選項(xiàng)

    set statistics io on

    set statistics profile on

    set statistics time on

    --釋放過(guò)程高速緩存將導(dǎo)致重新編譯某些部分

    DBCC FREEPROCCACHE

    --從緩沖池中刪除所有清除緩沖區(qū)

    不用關(guān)閉和重啟服務(wù)器或者服務(wù)

    DBCC DROPCLEANBUFFERS

    --以報(bào)表形式顯示有關(guān)過(guò)程高速緩存的信息

    DBCC PROCCACHE

    --顯示指定表上的指定目標(biāo)的當(dāng)前分布統(tǒng)計(jì)信息

    DBCC SHOW_STATISTICS ( table , target )

    --從遠(yuǎn)程服務(wù)器打開數(shù)據(jù)庫(kù)連接取數(shù)據(jù)

    SELECT top 20 *

    FROM OPENDATASOURCE(

    'SQLOLEDB',

    'Data Source=xxx.xxx.xx.x,port;User ID=sa;Password=xxxxxxx'

    ).[product].dbo.tableaa

    data source 好像不能有中括號(hào),好多網(wǎng)友的opendatasource不能用就是這個(gè)原因

    SELECT *

    FROM OpenDataSource

    ('Microsoft.Jet.OLEDB.4.0',

    'Data Source="c:\bbb.xls";User ID=;Password=;Extended properties=Excel 5.0')...[sheet1$]

    文本的查詢

    文件必須是,號(hào)分割文件

    HDR=YES 的時(shí)候,第一行被認(rèn)為是字段名

    HDR=NO 的時(shí)候,第一行被認(rèn)為是數(shù)據(jù)

    select * from

    OPENROWSET('MICROSOFT.JET.OLEDB.4.0'

    ,'Text;HDR=NO;DATABASE=C:\' --c:\是目錄

    ,aaa#txt) --文件名

    BULK INSERT xxxx_trs.dbo.xxxx_day

    FROM 'F:\BI_DsssDayAddin_cms_IN.csv'

    WITH

    (

    FIELDTERMINATOR =',',

    ROWTERMINATOR ='\n'

    )

    --查看sql版本

    SELECT SERVERPROPERTY('productversion'),SERVERPROPERTY('productlevel'),SERVERPROPERTY('edition')

    --初始化標(biāo)識(shí)列

    DBCC CHECKIDENT (ProductPicture, RESEED, 1)

    --數(shù)據(jù)庫(kù)2個(gè)比較常用的函數(shù)

    DATABASEPROPERTY 返回?cái)?shù)據(jù)庫(kù)狀態(tài)的值

    select DATABASEPROPERTY(dbname, 'issingleuser') 返回?cái)?shù)據(jù)庫(kù)是不是單用戶模式

    HAS_DBACCESS ( 'database_name' )

    返回信息,說(shuō)明用戶是否可以訪問(wèn)指定的數(shù)據(jù)庫(kù)

    --T終端用戶的人

    Query user 查詢當(dāng)前登錄用戶

    LogOff sessionid 注銷會(huì)話

    Tsdiscon sessionid 斷開某個(gè)會(huì)話的連接

    命令行下需要先建立一個(gè)ipc$會(huì)話

    net use \\10.168.0.21\c$ "XX" /user:administrator

    query user /server 10.168.0.21

    tsdiscon 2 /server 10.168.0.21

    創(chuàng)建與刪除SQL約束或字段約束。 SQL約束控制

    1)禁止所有表約束的SQL

    select'alter table '+name+' nocheck constraint all'from sysobjects where type='U'

    2)刪除所有表數(shù)據(jù)的SQL

    select'TRUNCATE TABLE '+name from sysobjects where type='U'

    3)恢復(fù)所有表約束的SQL

    select'alter table '+name+' check constraint all'from sysobjects where type='U'

    4)刪除某字段的約束

    declare@namevarchar(100)

    --DF為約束名稱前綴

    select@name=b.name from syscolumns a,sysobjects b where a.id=object_id('表名') and b.id=a.cdefault and a.name='字段名'and b.name like'DF%'

    --刪除約束

    altertable 表名 dropconstraint@name

    --為字段添加新默認(rèn)值和約束

    ALTERTABLE 表名 ADDCONSTRAINT@name DEFAULT (0) FOR[字段名] 對(duì)字段約束進(jìn)行更改

    --刪除約束

    ALTERTABLE tablename

    DropCONSTRAINT 約束名

    --修改表中已經(jīng)存在的列的屬性(不包括約束,但可以為主鍵或遞增或唯一)

    ALTERTABLE tablename

    altercolumn 列名 intnotnull

    --添加列的約束

    ALTERTABLE tablename

    ADDCONSTRAINT DF_tablename_列名 DEFAULT(0) FOR 列名

    --添加范圍約束

    altertable tablename add check(性別 in ('M','F'))







    創(chuàng)建一個(gè)庫(kù)

    CREATE DATABASE g2 ON PRIMARY

    ( NAME = 'g2', FILENAME = 'E:\benet\data1\g1.mdf' , SIZE = 307200KB , FILEGROWTH = 1024KB )

    LOG ON

    ( NAME = 'g2_log', FILENAME = 'E:\benet\data1\g1_log.ldf' , SIZE = 1024KB , FILEGROWTH = 10%)

    創(chuàng)建一個(gè)表

    CREATE TABLE biao2

    (

    id int NOT NULL,

    xingming char(10) NOT NULL,

    xingbie float(53) NOT NULL,

    nianling int NOT NULL,

    chengji float(53) NULL

    )

    查詢

    select * from biao1

    where chengji between 400 and 600

    select * from biao1

    where nianling like 55

    select * from biao1

    where nianling between 10 and 100

    select * from biao1

    where id = 5

    insert into biao1

    values (6 ,'原遲',1 , 100 , 1542.22)

    update biao1

    set chengji = chengji + 1000

    select * from biao1

    delete

    from biao1

    where id = 1

    select * from biao1

    select * from biao1 排序

    order by no asc

    update biao2

    set zongji = shuxue + yuwen + huaxue

    where xingming = 'a'

    insert into biao1

    values

    (7,'骨血松濤',1 , 700)

    select * from biao1

    where xingming like '%血%'

    select distinct xingbie from biao1

    alter table biao1

    drop column chengji 刪除一列

    alter table biao2

    add

    liehao int

    select * from biao1,biao2

    where biao1.id=biao2.id 將表一和表二聯(lián)系起來(lái),建立主索引, 注意小數(shù)點(diǎn)的應(yīng)用

    select * from biao1

    inner join biao2

    on biao1.id=biao2.id 和上面的一樣

    查詢時(shí)間

    select * from biao2

    where riqi between '1993-01-01 00:00:00.000' and '1994-6-29 00:00:00.000'

    select xingming from biao2

    where bumen ='xiaoshou' and xingbie ='na'

    delete

    from biao2

    where xingming='jinpeng'

    select id ,xingming into biao2_backup

    from biao2

    where xingbie='na' 備份選擇的數(shù)據(jù)

    create view shitu as

    select xingming ,riqi

    from biao2

    where xingbie = 'na' 創(chuàng)建一個(gè)自己匹配的視圖

    視圖相當(dāng)于是一個(gè)符合你的目的的一個(gè)查詢結(jié)果集.

    他不占用空間,方便你以后的查找.

    多文件還原代碼

    ESTORE DATABASE [benet] FROM DISK = N'G:\bak\wz.bak' WITH FILE = 1, NORECOVERY, NOUNLOAD, REPLACE, STATS = 10

    GO

    RESTORE DATABASE [benet] FROM DISK = N'G:\bak\cy.bak' WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 10

    GO

    恢復(fù)數(shù)據(jù)庫(kù) benet 來(lái)自文件 DISK = N'G:\bak\cy.bak' with 文件數(shù)1個(gè),

    NORECOVERY 指定不發(fā)生回滾。從而使前滾按順序在下一條語(yǔ)句中繼續(xù)進(jìn)行。

    在這種情況下,還原順序可還原其他備份,并執(zhí)行前滾。

    REPLACE覆蓋

    A. 還原完整數(shù)據(jù)庫(kù)

    注意:

    MyAdvWorks 數(shù)據(jù)庫(kù)僅供舉例說(shuō)明。

    以下示例還原完整數(shù)據(jù)庫(kù)備份。

    復(fù)制代碼

    RESTORE DATABASE MyAdvWorks

    FROM MyAdvWorks_1

    注意:

    對(duì)于使用完全恢復(fù)模式或大容量日志恢復(fù)模式的數(shù)據(jù)庫(kù),在大多數(shù)情況下,SQL Server 2005 都要求您在還原數(shù)據(jù)庫(kù)前備份日志尾部。有關(guān)詳細(xì)信息,請(qǐng)參閱尾日志備份。

    B. 還原完整數(shù)據(jù)庫(kù)備份和差異備份

    以下示例還原完整數(shù)據(jù)庫(kù)備份后還原差異備份。另外,以下示例還說(shuō)明如何還原媒體上的另一個(gè)備份集。差異備份追加到包含完整數(shù)據(jù)庫(kù)備份的備份設(shè)備上。

    復(fù)制代碼

    RESTORE DATABASE MyAdvWorks

    FROM MyAdvWorks_1

    WITH NORECOVERY

    RESTORE DATABASE MyAdvWorks

    FROM MyAdvWorks_1

    WITH FILE = 2

    C. 使用 RESTART 語(yǔ)法還原數(shù)據(jù)庫(kù)

    以下示例使用 RESTART 選項(xiàng)重新啟動(dòng)因服務(wù)器電源故障而中斷的 RESTORE 操作。

    復(fù)制代碼

    -- This database RESTORE halted prematurely due to power failure.

    RESTORE DATABASE MyAdvWorks

    FROM MyAdvWorks_1

    -- Here is the RESTORE RESTART operation.

    RESTORE DATABASE MyAdvWorks

    FROM MyAdvWorks_1 WITH RESTART

    D. 還原數(shù)據(jù)庫(kù)并移動(dòng)文件

    以下示例還原完整數(shù)據(jù)庫(kù)和事務(wù)日志,并將已還原的數(shù)據(jù)庫(kù)移動(dòng)到 C:\Program Files\Microsoft SQL Server\MSSQL\Data 目錄下。

    復(fù)制代碼

    RESTORE DATABASE MyAdvWorks

    FROM MyAdvWorks_1

    WITH NORECOVERY,

    MOVE 'MyAdvWorks' TO

    'c:\Program Files\Microsoft SQL Server\MSSQL\Data\NewAdvWorks.mdf',

    MOVE 'MyAdvWorksLog1'

    TO 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\NewAdvWorks.ldf'

    RESTORE LOG MyAdvWorks

    FROM MyAdvWorksLog1

    WITH RECOVERY

    E. 使用 BACKUP 和 RESTORE 創(chuàng)建數(shù)據(jù)庫(kù)的副本

    以下示例使用 BACKUP 和 RESTORE 語(yǔ)句創(chuàng)建 AdventureWorks 數(shù)據(jù)庫(kù)的副本。MOVE 語(yǔ)句使數(shù)據(jù)和日志文件還原到指定的位置。RESTORE FILELISTONLY 語(yǔ)句用于確定待還原數(shù)據(jù)庫(kù)內(nèi)的文件數(shù)及名稱。該數(shù)據(jù)庫(kù)的新副本稱為 TestDB。有關(guān)詳細(xì)信息,請(qǐng)參閱 RESTORE FILELISTONLY (Transact-SQL)。

    復(fù)制代碼

    BACKUP DATABASE AdventureWorks

    TO DISK = 'C:\AdventureWorks.bak'

    RESTORE FILELISTONLY

    FROM DISK = 'C:\AdventureWorks.bak'

    RESTORE DATABASE TestDB

    FROM DISK = 'C:\AdventureWorks.bak'

    WITH MOVE 'AdventureWorks_Data' TO 'C:\testdb.mdf',

    MOVE 'AdventureWorks_Log' TO 'C:\testdb.ldf'

    GO

    F. 使用 STOPAT 語(yǔ)法還原到時(shí)間點(diǎn)和使用多個(gè)設(shè)備進(jìn)行還原

    以下示例將數(shù)據(jù)庫(kù)還原到它在 2005 年 4 月 15 日中午 12 點(diǎn)時(shí)的狀態(tài),并顯示涉及多個(gè)日志和多個(gè)備份設(shè)備的還原操作。

    復(fù)制代碼

    RESTORE DATABASE MyAdvWorks

    FROM MyAdvWorks_1, MyAdvWorks_2

    WITH NORECOVERY, STOPAT = 'Apr 15, 2005 12:00 AM'

    RESTORE LOG MyAdvWorks

    FROM MyAdvWorksLog1

    WITH NORECOVERY, STOPAT = 'Apr 15, 2005 12:00 AM'

    RESTORE LOG MyAdvWorks

    FROM MyAdvWorksLog2

    WITH RECOVERY, STOPAT = 'Apr 15, 2005 12:00 AM'

    G. 將事務(wù)日志還原到標(biāo)記

    以下示例將事務(wù)日志還原到名為 ListPriceUpdate 的標(biāo)記事務(wù)中的標(biāo)記處。

    復(fù)制代碼

    USE AdventureWorks

    GO

    BEGIN TRANSACTION ListPriceUpdate

    WITH MARK 'UPDATE Product list prices'

    GO

    UPDATE Production.Product

    SET ListPrice = ListPrice * 1.10

    WHERE ProductNumber LIKE 'BK-%'

    GO

    COMMIT TRANSACTION ListPriceUpdate

    GO

    -- Time passes. Regular database

    -- and log backups are taken.

    -- An error occurs.

    USE master

    GO

    RESTORE DATABASE AdventureWorks

    FROM AdvWorks1

    WITH FILE = 3, NORECOVERY

    GO

    RESTORE LOG AdventureWorks

    FROM AdvWorks1

    WITH FILE = 4,

    STOPATMARK = 'ListPriceUpdate'

    H. 使用 TAPE 語(yǔ)法還原

    以下示例從 TAPE 備份設(shè)備還原完整數(shù)據(jù)庫(kù)備份。

    復(fù)制代碼

    RESTORE DATABASE MyAdvWorks

    FROM TAPE = '\\.\tape0'

    I. 使用 FILE 和 FILEGROUP 語(yǔ)法還原

    以下示例還原一個(gè)包含兩個(gè)文件、一個(gè)文件組和一個(gè)事務(wù)日志的數(shù)據(jù)庫(kù)。

    復(fù)制代碼

    RESTORE DATABASE MyAdvWorks

    FILE = 'MyAdvWorks_data_1',

    FILE = 'MyAdvWorks_data_2',

    FILEGROUP = 'new_customers'

    FROM MyAdvWorks_1

    WITH NORECOVERY

    -- Restore the log backup.

    RESTORE LOG MyAdvWorks

    FROM MyAdvWorksLog1

    J. 恢復(fù)到數(shù)據(jù)庫(kù)快照

    以下示例將數(shù)據(jù)庫(kù)恢復(fù)到數(shù)據(jù)庫(kù)快照。此示例假定該數(shù)據(jù)庫(kù)當(dāng)前僅存在一個(gè)快照。有關(guān)創(chuàng)建此數(shù)據(jù)庫(kù)快照的示例,請(qǐng)參閱如何創(chuàng)建數(shù)據(jù)庫(kù)快照 (Transact-SQL)。

    注意:

    恢復(fù)到快照將刪除所有全文目錄。

    復(fù)制代碼

    USE master

    RESTORE DATABASE AdventureWorks FROM DATABASE_SNAPSHOT = 'AdventureWorks_dbss1800';

    GO





    下一條:asp統(tǒng)計(jì)字符串中中文字符的個(gè)數(shù)

    上一條:asp替換空格正則表達(dá)式

棗莊西橋網(wǎng)絡(luò)微信小程序微信小程序

棗莊西橋網(wǎng)絡(luò)手機(jī)站二維碼掃描手機(jī)瀏覽