SQL serve 数据库--视图、事物、分离附加、备份还原

摘要:
CommitTransaction:事务已经成功执行,数据已经处理妥当。SaveTransaction:事务内部设置的保存点,就是事务可以不全部回滚,只回滚到这里,保证事务内部不出错的前提下。

视图是数据库中的一种虚拟表,与真实的表一样,视图包含一系列带有名称的行和列数据。行和列数据用来自定义视图的查询所引用的表,并且在引用视图时动态生成。

视图只能用来查询,不能增删改;不允许出现重复列

1. 视图的概念

视图是从一个或者多个表中导出的,其行为与表相似,但视图是一个虚拟表。视图可以在已经存在的视图的基础上定义。在视图上用户可以使用SELECT语句查询数据库,使用INSERT、UPDATE和DELETE语句修改记录。对于视图的操作最终转化为对基本数据表的操作。

2. 创建视图

使用T-SQL创建视图语法:

create viewstudent11 --视图名
as
select score.sno, sname, sbirthday, score.cno, cname, DEGREE from student,score,course --视图内容
select * from student11 -- 查询视图

实例: 单表视图

CREATE VIEW [V_Product]
AS
    SELECT [ProductID],[ProductName]
    FROM [dbo].[Product]

多表视图

CREATE VIEW [dbo].[V_ProductCategory]
AS
    SELECT [ProductID],[CategoryName],[ProductName]
    FROM [dbo].[Product] INNER JOIN [dbo].[Category]
    ON [dbo].[Product].[CategoryID] = [dbo].[Category].[CategoryID]

创建排序视图

CREATE VIEW [dbo].[V_Product]
AS
    SELECT TOP 100 PERCENT [ProductID],[ProductName]
    FROM [dbo].[Product]
    ORDER BY [UnitPrice]

3. 修改视图

鼠标放在视图名——右键——设计——

SQL serve 数据库--视图、事物、分离附加、备份还原第1张

4. 查看视图

查看视图结构:

EXEC sp_help [V_Product]

查看视图文本:

EXEC sp_helptext [V_Product]

5. 删除视图

删除单个视图:

DROP VIEW [V_Product]

删除多个视图:

DROP VIEW [V_Product],[V_ProductCategory]
事物:
  • Begin Transaction:标记事务开始。
  • Commit Transaction:事务已经成功执行,数据已经处理妥当。
  • Rollback Transaction:数据处理过程中出错,回滚到没有处理之前的数据状态,或回滚到事务内部的保存点。
  • Save Transaction:事务内部设置的保存点,就是事务可以不全部回滚,只回滚到这里,保证事务内部不出错的前提下。
  • 格式:
  • begin tran
  • select * from user
  • if@@error >0
  • begin
  • rollback tran ;
  • end
  • else
  • begin
  • commit tran
  • end

在一个事务中,你写啦2条sql语句,一条是修改订单表状态,一条是修改库存表库存-1 。 如果在修改订单表状态的时候出错,事务能够回滚,数据将恢复到没修改之前的数据状态,下面的修改库存也就不执行,这样确保你关系逻辑的一致,安全。。

事务就是这个样子,要么全部执行,要么全部不执行,回到原数据状态。

事务具有的特性

  • 原子性:事务必须是一个自动工作的单元,要么全部执行,要么全部不执行。
  • 一致性:事务结束的时候,所有的内部数据都是正确的。
  • 隔离性:并发多个事务时,各个事务不干涉内部数据,处理的都是另外一个事务处理之前或之后的数据。
  • 持久性:事务提交之后,数据是永久性的,不可再回滚。

免责声明:文章转载自《SQL serve 数据库--视图、事物、分离附加、备份还原》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇第6章 约束满足问题CSP了解NTFS压缩下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

sql 排序时某些数据指定在前面然后再order by

      有时候order by有这种需求:需要某个userid的数据排在第一行,然后再跟进其他字段进行order by 。 怎么处理这种需求。可以这么用: select * from user order by  case when userid =xx then  0 else userid end --我们把userid等于指定数值的设置为0这样就...

GSM模块_STM32实现GPRS与服务器数据传输经验总结

硬件环境 MCU:STM32F103RET6 (调试器:J-Link) GSM模块:Ai-Thinker_A6 (安信可)(还需要配一个串口打印工具,当初选这个模块纯粹是因为价格是最便宜的) ------------------------------------------------------------------------- 软件环境 Keil...

使用kettle实现最基础的数据表同步

最近数据交换项目上需要用到ETL工具,原来一直不太了解,经同事介绍kettle可以很方便地进行数据同步。于是简单试用了一下,实现了从源表到目标表的数据同步(包括增删改)。 我们的需求如下:将业务系统指定表(source表)中的数据,同步到交换平台上相同结构的表(target表)中。不论source表中的数据新增、修改、删除,都会同步更新到target表中。...

Oracle 12c 容器讲解

Oracle 12c一个重要新特性是插接式数据库。 插接式数据库由一个使用 CDB(Container Database)选项创建的容器数据库和一个或多个 PDB(Pluggable Database)组成,CDB 作为容器容纳 PDB,而 PDB 彼此隔离,就像一个独立的数据库般在 CDB 中存在。PDB 是一组 Schema 的集合,在 CDB 中作为...

新破天一剑合区SQL(半成品)

--可以合区,但合区后人物的东西消失了  -_-!! --存在这里,供以后遇到相关需要时翻查。 --[user]的触发器 CREATE TRIGGER update_chr ON dbo.[user] FOR insert ASBEGIN                  update [user] set chr2=chr1+1, chr3=chr1+2...

SqlServer临时表

临时表的使用   什么是临时表临时表分为两种:本地和全局临时表。本地临时表仅在当前会话中可见;全局临时表在所有会话中都可见。 本地临时表的名称前面有一个编号符 #table_name,而全局临时表的名称前面有两个编号符 ##table_name。 临时表的使用场景 数据二次过滤 数据库中表创建完成之后,对于复杂的查询,可以引入临时表,将数据插入到临时表...