SQL Server 2012 - 数据更新操作

SELECT  *
FROM    dbo.Student;

--1, 插入数据  Insert ,逗号分隔可以同时插入多条
INSERT  dbo.Student
        ( StuID, Class, StuName, StuEnName, StuAge, StuBirthday, StuSex,
          Height, Remark )
VALUES  ( ‘007‘, -- StuID - varchar(10)
          3, -- Class - int
          N‘呵呵‘, -- StuName - nvarchar(50)
          ‘Hehe‘, -- StuEnName - varchar(50)
          22, -- StuAge - int
          GETDATE(), -- StuBirthday - datetime
          N‘男‘, -- StuSex - nvarchar(10)
          190, -- Height - int
          ‘test‘  -- Remark - text
          ),
        ( ‘008‘, -- StuID - varchar(10)
          3, -- Class - int
          N‘你好‘, -- StuName - nvarchar(50)
          ‘Nihao‘, -- StuEnName - varchar(50)
          25, -- StuAge - int
          GETDATE(), -- StuBirthday - datetime
          N‘女‘, -- StuSex - nvarchar(10)
          190, -- Height - int
          ‘test‘  -- Remark - text
          );

--2, 从一个表网另外一个表中写入数据
INSERT  INTO dbo.Student
        SELECT  ‘009‘ ,
                Class ,
                ‘猫咪‘ ,
                ‘Kitty‘ ,
                StuAge ,
                StuBirthday ,
                StuSex ,
                Height ,
                Remark
        FROM    dbo.Student
        WHERE   StuID = ‘008‘;

-- 3, OUTPUT 抛出写入的StuID
DECLARE @stuId VARCHAR(10)
INSERT  dbo.Student
        ( StuID, Class, StuName, StuEnName, StuAge, StuBirthday, StuSex,
          Height, Remark )
OUTPUT  Inserted.StuID
VALUES  ( ‘010‘, -- StuID - varchar(10)
          3, -- Class - int
          N‘叮当‘, -- StuName - nvarchar(50)
          ‘DingDang‘, -- StuEnName - varchar(50)
          22, -- StuAge - int
          GETDATE(), -- StuBirthday - datetime
          N‘男‘, -- StuSex - nvarchar(10)
          190, -- Height - int
          ‘test‘  -- Remark - text
          )

--4 ,OUTPUT 抛出写入的另外一张物理表中(历史表)
DECLARE @stuIdTable  TABLE(id INT)
INSERT  dbo.Student
        ( StuID, Class, StuName, StuEnName, StuAge, StuBirthday, StuSex,
          Height, Remark )
OUTPUT  Inserted.StuID INTO @stuIdTable  -- OUTPUT INTO只能写入表中
VALUES  ( ‘012‘, -- StuID - varchar(10)
          3, -- Class - int
          N‘Vanilla‘, -- StuName - nvarchar(50)
          ‘香草‘, -- StuEnName - varchar(50)
          22, -- StuAge - int
          GETDATE(), -- StuBirthday - datetime
          N‘男‘, -- StuSex - nvarchar(10)
          190, -- Height - int
          ‘test‘  -- Remark - text
          )
SELECT * FROM @stuIdTable

-- 5,更新数据
UPDATE dbo.Student SET Height=Height+10 WHERE Height IS NOT NULL

-- 6, 根据另外一张表进行数据更新:在两个表建立关系的情况下进行更新
-- Join的方式进行多表更新
UPDATE T
SET T.Remark = ‘班级01的学生‘
FROM dbo.Student AS T  JOIN dbo.ClassInfo AS C
ON t.Class=c.ID WHERE C.ID=‘1‘
-- Where的方式进行多表更新
UPDATE T
SET T.Remark = ‘班级02的学生‘
FROM dbo.Student AS T  , dbo.ClassInfo AS C
where t.Class=c.ID and C.ID=‘2‘

-- 7, OUTPUT查看更新前、后的数据
UPDATE dbo.Student SET StuSex=‘女‘
 OUTPUT Inserted.StuSex,Deleted.StuSex
WHERE StuID=‘007‘

-- 8, Update中Set语句后的命令是同时执行的,没有先后顺序
UPDATE dbo.Student SET StuSex=‘男‘,StuName=StuName+‘-‘+StuSex
WHERE  StuID=‘007‘
SELECT * FROM dbo.Student  WHERE  StuID=‘007‘
   -- 两个字段进行值的互换
UPDATE dbo.Student SET StuAge=Height,Height=StuAge
WHERE  StuID=‘007‘
SELECT * FROM dbo.Student  WHERE  StuID=‘007‘

-- 9, Delete
SELECT * INTO Student_His FROM dbo.Student WHERE 1=2

DELETE dbo.Student
OUTPUT Deleted.StuID,Deleted.Class,Deleted.StuName,Deleted.StuEnName,Deleted.StuBirthday,Deleted.StuSex,Deleted.Height,Deleted.Remark
INTO dbo.Student_His( StuID,Class,StuName,StuEnName,StuBirthday,StuSex,Height,Remark)
WHERE  StuID=‘007‘

--10, Truncate Table = delete tablename (不带任何条件):清空表,重置自增列,日志小,操作更快
TRUNCATE TABLE dbo.Student_His
SELECT *  FROM  [dbo].[Student_His]

  

时间: 2024-11-07 00:07:16

SQL Server 2012 - 数据更新操作的相关文章

SQL Server 2012 案例教程(贾祥素)——学习笔记

第2章 SQL Server 2012概述 1.SQL(Structed Query Language),结构化查询语言. 2.SSMS(SQL Server Mangement Studio),SQL Server 2012的操作环境. 3.连接SQL Server之前应先启动SQL Server服务,即SQL Server(MSSQLSERVER): 方法1 开始--所有程序--Microsoft SQL Server 2012--配置工具--SQL Server配置管理器. 方法2 控制面

SQL Server 2012安装图文教程

解析SQL Server 2012安装中心 当系统打开"SQL Server安装中心",则说明我们可以开始正常的安装SQL Server 2012了. SQL Server安装中心 在微软提供的"SQL Server安装中心"界面里,我们可以通过"计划"."安装"."维护"."工具"."资源"."高级"."选项"等进行系统安装.

SQL Server 2012设置某用户对某些表的记录限制其删除操作

第一步:用sa用户进入SSMS: 第二步:在安全性---用户上面点击右键---"属性": 第三步:在选择页中选择"安全对象",点击"搜索",弹出添加对象页面,这里默认为特定对象不用选择: 第四步:点击对象类型对话框,打开选择对象类型,选择"表": 第五步:对要进行加权限限制的表进行选择: 第六步:对所选择的表进行授权设置,点击完成即可.我这里主要是限制不可以删除,选择相应的表,勾选删除即可. SQL Server 2012设置

SQL Server 2012笔记分享-46:如何快速学习T-SQL语句

对于初学者来说,T-SQL语句的编写一直是个难题,初学者还是习惯使用图形界面来做相关的SQL方面的维护工作.但是在一个稍微复杂大型的SQL场景中,如果我们能够快速的掌握和理解SQL语句的编写和使用,那么会使我们的运维工作达到事半功倍的效果. 其实对于SQL server 2012来说,本身就提供了很多途径来帮助初学者获取日常管理任务的对应T-SQL脚本.下面我们来举几个快速获取T-SQL脚本的例子. ================================================

SQL Server 2012 自动增长列,值跳跃问题

介绍 从 SQL Server 2012 版本开始, 当SQL Server 实例重启之后,表格的自动增长列的值会发生跳跃,而具体的跳跃值的大小是根据增长列的数据类型而定的.如果数据类型是 整型(int),那么跳跃值为 1000:如果数据类型为 长整型(bigint),那么跳跃值为 10000.从我们的项目来看,这种跳跃问题是不能被接受的,尤其是展示在客户端的时候.这个奇怪的问题只在 SQL Server 2012 及更高的版本中存在,SQL Server 2012之前版本不存在此问题. 背景

SQL Server 2012:SQL Server体系结构——一个查询的生命周期(第1部分)

为了缩小读取操作所涉及范围,本文首先着眼于简单的SELECT查询,然后引入执行更新操作有关的附加过程.最后你会读到,优化性能时SQLServer使用还原工具的相关术语和流程. 关系和存储引擎 如图所示,SQL Server被分为2个主要引擎:关系引擎和存储引擎.关系引擎有时也被称为查询处理器,因为它的主要功能是查询优化和执行.它包含检查查询语法和准备查询树的命令解析器:查询优化器毫无疑问是任何数据库系统中皇冠上的宝石:查询执行器对执行(查询计划)负责. 存储引擎对所有数据输入.输出管理负责.它包

SQL Server 2012笔记分享-38:了解系统数据库

master 数据库 记录 SQL Server 实例的所有系统级信息. master 数据库记录 SQL Server 系统的所有系统级信息.这包括实例范围的元数据(例如登录帐户).端点.链接服务器和系统配置设置.此外,master 数据库还记录了所有其他数据库的存在.数据库文件的位置以及 SQL Server 的初始化信息.因此,如果 master 数据库不可用,则 SQL Server 无法启动.在 SQL Server 中,系统对象不再存储在 master 数据库中,而是存储在 Reso

SQL Server 2012笔记分享-1:SQL Server版本的演变

SQL是英文Structured Query Language的缩写,意思为结构化查询语言.SQL语言的主要功能就是同各种数据库建立联系,进行沟通.按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言.SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等.目前,绝大多数流行的关系型数据库管理系统,如Oracle, Sybase, Microsoft SQL Server, Access等都采用了SQL语言标准. SQL server版本

SQL Server 2012笔记分享-2:主要服务器组件

SQL server 2012主要包括如下的五大组件 SQL Server数据库引擎 SQL Server 数据库引擎包括数据库引擎(用于存储.处理和保护数据的核心服务).复制.全文搜索.用于管理关系数据和 XML 数据的工具以及 Data Quality Services (DQS) 服务器. 分析服务 Analysis Services 包括用于创建和管理联机分析处理 (OLAP) 以及数据挖掘应用程序的工具. 报表服务 Reporting Services 包括用于创建.管理和部署表格报表