亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > SQL Server > 正文

9、SQL Server 操作數據

2024-08-31 00:54:05
字體:
來源:轉載
供稿:網友
9、SQL Server 操作數據

插入數據

使用Insert Into 插入

if(exists(select * from sys.databases where name = 'webDB'))    drop database webDBgo--創建數據庫create database webDB on PRimary(    name = 'webDB',    filename='d:/webDB.mdf',    size = 5mb,    maxsize=unlimited,    filegrowth=10%)log on(    name = 'webDB_log',    filename = 'd:/webDB.ldf',    size=3mb,    maxsize=50mb,    filegrowth=2mb)use webDBgo--創建表create table student(    id int identity(1,1) primary key,    name varchar(20) not null,    sex char(2) not null,    age int)--使用Insert Into 插入一行數據insert into student (name,sex,age) values ('白大偉','男',26)--id為標識列 自動增長 無需為其添加值--插入某個列insert into student (name,sex) values ('魏力夫','妖')--如果插入全部列,可以不用寫列名insert into student values ('李東','男',37)

插入標識列Set Identity_Insert

--如果需要在標識列中插入一個值,可以使用Set Identity_Insert語句,但注意 主鍵不可重復!set Identity_Insert student on --設置允許插入標識列insert into student (id,name,sex,age) values (4,'梁不賤','男',24)set Identity_Insert student off --插入后 關閉

使用InsertInto插入多行數據

--使用Insert Into 插入多行數據,使用逗號分割insert into student (name,sex,age) values ('張三','男',18),('李四','女',19),('王五','女',20)

使用Select語句插入

--使用Select 語句可以將現有表中的多行數據插入到目標表中insert into student (name,sex,age) select Sname,Ssex,Sage from oldTable

使用SelectInto插入

--使用Select Into 插入數據--該方法其實是創建了一張新表,然后由select語句將所有行添加到新創建的表中。select id,name,sex,ageinto newTablefrom student--這種方式創建的表,沒有主鍵,索引,以及約束,并且表列的長度也會發生變化。不適合創建永久表

更新數據

使用Update語句更新數據

--需要注意的是,如果不限制范圍,則整表都會更新update student set name='王大錘' where id = 3

引用多表更新數據

--有時會需要引用另外的表,用來限制更新記錄create table [user](    userID int identity(1,1) primary key,    userName varchar(30) not null,    passWord varchar(30) not null,    RoleId int not null)create table [role](    roleId int identity(1,1) primary key,    roleName varchar(30) not null,    roleContent varchar(50) not null)insert into [user] values ('admin','admin',1),('editor','editor',2),('system','system',3)insert into [role] values ('管理員','網站管理員'),('編輯','網站編輯'),('系統','系統管理員')update [role] set roleContent = '只有user表中的用戶名類似adm才會修改'from Role rinner join [user] uon r.roleId = u.RoleIdwhere u.userName like 'adm%' --如果沒有這個限制條件 則整表都更新select * from [role]

刪除數據

使用Delete刪除

--如果不限制條件則整表都會被刪除。delete from student where id = 1

引用多表刪除數據

--先刪除user表中的admindelete from [user] where userName = 'Admin'delete from [role]from [role] rleft outer join [user] uon r.roleId = u.userIDwhere u.RoleId is null --刪除權限表中未被user表中引用的數據,管理員被刪除select * from [role]

使用truncate刪除所有行

truncate table oldTable--truncate 會刪除所有行,無法指定范圍.

合并數據

Merge語句是一個多種功能的混合語句,在一個查詢中可以完成Insert、Update、Delete等功能。

根據與源表聯接的結果,對目標表執行插入、更新或刪除操作。源表中包含即將被添加(或更新)到目標表中的數據行,而目標表接受插入(或更新)操作,可以對兩個表進行同步操作。

SQLServer 2008之前的版本中是沒有的,所以以前都是先刪掉再添加,或寫一些分支條件判斷存在否再insert或update。

--創建源表create table sourceTable(    id int,    content varchar(30))--創建目標表create table targetTable(    id int,    content varchar(30))--插入測試數據insert into sourceTable values (1,'S001'),(2,'S002'),(3,'S003'),(4,'S004'),(5,'S005')insert into targetTable values (1,'target001'),(2,'target002'),(6,'target006'),(7,'target007')select * from sourceTable--源表--1        S001--2        S002--3        S003--4        S004--5        S005select * from targetTable--目標表--1        target001--2        target002--6        target006--7        target007--編寫merge語句merge into targetTable t    --目標表using sourceTable s            --源表on t.id = s.id                --類似join 完成兩表之間的匹配when matched                --如果兩表中有值被匹配,更新then update set t.content = s.content when not matched            --如果沒有匹配結果,插入then insert values(s.id,s.content)when not matched by source    --目標表中存在但源表中不存在,刪除then delete;--再次查詢,則兩表同步

返回輸出的數據

OUTPUT子句可以把受影響的數據行返回給執行請求的任何接口,并且可以插入到一張表中。

OUTPUT子句可以引用inserted或deleted虛擬表,取決于需要修改前(deleted)或修改后(inserted)的數據。

輸出insert語句的執行結果

insert into studentoutput inserted.id,inserted.name,inserted.sex,inserted.age --inserted.* 所有select '哈哈','女',24--返回insert語句插入的記錄,對于查找服務器生成的值并返回給應用程序是很有用的。

輸出update語句的執行結果

update student set name='張振'output deleted.name as oldName,inserted.name as updateValuewhere id = 4--返回修改之前的名字 和修改之后的名字--可以用來追蹤對數據庫的刪除操作

將OUTPUT結果插入一張表中

--創建審計表create table db_Audit(    id int not null,    name varchar(50) not null,    sex  varchar(50) not null,    age int,    deleteDate datetime not null        constraint DF_deleteDate_TOday default(getdate()) --默認約束 當前時間)delete from studentoutput deleted.id,deleted.name,deleted.sex,deleted.ageinto db_Audit(id,name,sex,age)where id <10 -- 將id小于10的全部刪除并插入到審計表中select * from db_Audit

Merge通過output子句,可以將剛剛做過變動的數據進行輸出。

merge into targetTable t    --目標表using sourceTable s            --源表on t.id = s.id                --類似join 完成兩表之間的匹配when matched                --如果兩表中有值被匹配,更新then update set t.content = s.content when not matched            --如果沒有匹配結果,插入then insert values(s.id,s.content)when not matched by source    --目標表中存在但源表中不存在,刪除then deleteoutput $action as action,inserted.id as 插入的id,inserted.content as 插入的內容,deleted.id as 刪除的id,deleted.content as 刪除的內容;


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩在线免费视频观看| 欧美视频专区一二在线观看| 国产久一一精品| 日韩在线免费高清视频| 亚洲丝袜在线视频| 国产日韩在线一区| 亚洲欧美国产精品va在线观看| 欧美www在线| 亚洲aa在线观看| 亚洲欧美在线一区二区| 久久99久国产精品黄毛片入口| 国产精品video| 91天堂在线观看| 欧美激情亚洲激情| 国内精久久久久久久久久人| 日韩在线视频导航| 日韩高清电影免费观看完整| 日韩黄色高清视频| 国产精品精品视频| 国产精品国模在线| 尤物九九久久国产精品的分类| 欧日韩不卡在线视频| 国产aaa精品| 国产精品久久久久影院日本| 久久久国产视频91| 久久久免费高清电视剧观看| 亚洲精品美女久久| 亚洲人成毛片在线播放| 成人激情av在线| 国产成人一区三区| 日韩欧美有码在线| 亚洲综合中文字幕在线| 秋霞成人午夜鲁丝一区二区三区| 日韩69视频在线观看| 欧美精品18videos性欧美| 色悠悠国产精品| 中文字幕日本精品| 欧美一级bbbbb性bbbb喷潮片| 欧美成人午夜激情视频| 中文字幕亚洲综合久久| 国产欧美日韩丝袜精品一区| 亚洲最大成人免费视频| 欧美高清视频在线观看| 在线精品播放av| 亚洲人成五月天| 精品国产一区二区在线| 久久九九免费视频| 成人综合网网址| 欧美极品在线播放| 久久成人亚洲精品| 国产一区二区三区在线观看网站| 亚洲精品国产精品久久清纯直播| 国产精品入口免费视| 成人一区二区电影| 日本午夜精品理论片a级appf发布| 成人在线一区二区| 午夜精品久久久99热福利| 亚洲国产成人爱av在线播放| 久久久久久久久91| 55夜色66夜色国产精品视频| 国产一区二区三区三区在线观看| 夜夜狂射影院欧美极品| 日韩电影在线观看永久视频免费网站| 91精品国产色综合久久不卡98口| 亚洲成人免费在线视频| 中文字幕成人在线| 亚洲成人网av| 久久99青青精品免费观看| 精品亚洲一区二区三区四区五区| 久久99久国产精品黄毛片入口| 国产国语videosex另类| 中文字幕av一区中文字幕天堂| 国产成人精品日本亚洲| 欧美一级淫片丝袜脚交| 成人国产精品一区二区| 亚洲一区二区三区四区视频| 韩国三级日本三级少妇99| 欧洲精品久久久| 国产欧美最新羞羞视频在线观看| 亚洲精品av在线播放| 日韩视频免费大全中文字幕| 国产一区二区三区免费视频| 98视频在线噜噜噜国产| 亚洲91av视频| 色综合久久久久久中文网| 亚洲人成网站999久久久综合| 国产一区二区美女视频| 久久久成人精品视频| 精品综合久久久久久97| 欧美国产日韩二区| 国产一区二区视频在线观看| 欧美激情精品在线| …久久精品99久久香蕉国产| 亚洲精品久久久久久久久久久久| 黄色成人av在线| 萌白酱国产一区二区| 国产成人一区二| 欧美激情视频一区二区三区不卡| 欧美一级淫片丝袜脚交| 亚洲黄页网在线观看| 欧美国产日韩二区| 国产精品久久久久av免费| 狠狠色狠狠色综合日日小说| 成人av电影天堂| 日韩免费精品视频| 爱福利视频一区| 欧美精品做受xxx性少妇| 亚洲自拍偷拍视频| 亚洲国产成人在线播放| 欧美成人黑人xx视频免费观看| 亚洲国产日韩欧美在线动漫| 欧美老女人xx| y97精品国产97久久久久久| 亚洲欧美日韩爽爽影院| 亚洲欧美日韩在线一区| 91色在线视频| 97国产真实伦对白精彩视频8| 色青青草原桃花久久综合| 欧美精品在线视频观看| 午夜剧场成人观在线视频免费观看| 九九热r在线视频精品| 精品国产91乱高清在线观看| 成人xxxx视频| 国产成人欧美在线观看| 亚洲精品国产电影| 亚洲一区www| 精品国产一区二区三区久久狼黑人| 久久精品国产亚洲一区二区| 欧美精品aaa| 91精品国产自产在线老师啪| 欧美一级片免费在线| 久久福利网址导航| 亚洲mm色国产网站| 欧美精品videos性欧美| 日韩经典中文字幕在线观看| 亚洲欧美在线播放| 91成人国产在线观看| 精品福利在线观看| 国产美女高潮久久白浆| 亚洲欧美精品一区| 成人亚洲欧美一区二区三区| 欧美精品在线极品| 国产成人福利视频| 国产精品视频白浆免费视频| 日韩av毛片网| 欧美限制级电影在线观看| 国产成人精品电影| 色诱女教师一区二区三区| 亚洲男人av电影| 亚洲综合在线中文字幕| 亚洲色图欧美制服丝袜另类第一页| 久久久电影免费观看完整版| 亚洲成人黄色网| 国产欧美日韩91| 国产91精品网站| 精品国产成人av| 最新69国产成人精品视频免费| 亚洲国产成人精品一区二区| 国产亚洲一区二区精品| 综合激情国产一区| 91久久国产综合久久91精品网站| 日韩暖暖在线视频| 国产亚洲综合久久| 不卡中文字幕av|