T SQL入門攻略之14 獲取DML語句的影響資訊

2021-08-25 07:46:36 字數 3367 閱讀 2150

--> title : t-sql

入門攻略之

14-獲取dml語句的影響資訊

--> author : wufeng4552

--> date : 2010-07-29

首先把上節沒講完的講完:

多列更新

update

testbook

setprice = price * 0.3,

--打折

remark =

'過時圖書'

--備註

where

date<=

'2000-01-01'

;大容量資料更新go

;刪除資料

(1)刪除部分資料

delete

from book2 --

刪除部分資料

where

date<

'2000/1/1'

;(2)

刪除全部資料

delete

from book2 --

刪除全部資料

當然也可以這樣刪除全部資料

truncate

table book2

注:這裡從效果上看

truncate

table

與delete是一樣的,都是刪除表中的所有資料,但是不包括表結構。但是他們有不同:

(1)執行delete語句系統將逐行對資料進行刪除並記錄日誌資訊。

(2)執行truncate語句時候系統將一次性刪除與表有關的所有資料頁,且不記錄日誌,不形成日誌檔案。

基於以上亮點可以看出truncate table要比delete快的多,因為前者不記錄日誌。但是這也說明了truncate table語句刪除的資料不能用rollback語句來恢復.相反delete可以

檢視資料表

select

a.name

欄位名, b.

name

字段型別,

a.max_length 字段長度

from

sys.all_columns

as a

join

sys.types

as b on

a.system_type_id = b.system_type_id

where

object_id

=object_id

('dbo.student'

);刪除資料表

drop

table t1,t2,t3

2005

及以上版本在操縱語句中使用output

可以獲取具體的影響資訊

以下分別說明

output

在insert

語句中的應用

insert

book

output inserted.*

select

106,

'數字影象處理','

宋青書','

科學出版社'

,'2006/7/1'

,'200607100'

,25.00,

'較差'

當然也可以把返回的結果儲存起來但是必須用表或者表變數不能用變數來接受感興趣的可以試驗下

ifobject_id

('t2'

,'u')is

notnull

drop

table t2;

--建立表結構go

create

table t2 (

bkno int

,bkname nvarchar

(50),

author nvarchar

(8));

insert

book

output inserted.bkno, inserted.bkname, inserted.author

into t2

select

104,

'jsp

**開發教程','

趙敏',

'電子工業出版社'

,'2002/10/11'

,'200210201'

, 35.00,

'較好'

union

allselect

105,

'c++builder

程式設計','

俞蓮舟','

人民郵電出版社'

,'2007/1/1'

,'200701111'

, 53.00,

'一般'

output

在delete

語句中的應用

delete

from book

output deleted.*

where

bkno=104;

output

在update

語句中的應用

declare

@mytablevar table

--建立表變數作用類似表(

preprice numeric

(10,2),

posprice numeric

(10,2))

update

book

setprice = price*1.3

output deleted.price,

inserted.price

into @mytablevar;

T SQL 入門攻略

更改資料庫名 1 alter database database name modify name new database name 2 sp renamedb olddbname,newdbname 新增資料檔案和檔案組 擴大 1 新增資料檔案 use master godeclare data...

T SQL入門攻略

t sql入門攻略之1 初識t sql t sql入門攻略之2 sql資料型別 t sql入門攻略之3 sql簡單查詢 t sql入門攻略之4 萬用字元使用 t sql入門攻略之5 t sql的變數與常量 t sql入門攻略之6 t sql運算子與流程控制 t sql入門攻略之7 常見系統函式 t ...

T SQL入門攻略之12 建立資料表

title t sql 入門攻略之12 建立資料表 author wufeng4552 date 2010 06 18 使用主鍵約束 主鍵不允許重複也不允許有空值 1單字段主鍵 if object id testtable u is notnull drop table testtable crea...