-
SqlServer中的事务介绍
1.什么是事务:事务是一个不可分割的工作逻辑单元,在数据库系统上执行并发操作时事务是做为最小的控制单元来使用的。 他包含的所有数据库操作命令作为一个整体一起向系提交或撤消,这一组数据库操作命令要么都执行,要么都不执行...
数据库操作教程 2022-09-23 17:29:52 -
sql语句中单引号嵌套问题(一定要避免直接嵌套)
在sql语句中,我们难免会用到单引号嵌套的时候,但是直接嵌套肯定是不行的,java中用反斜杠做转义符也是不行的,在sql中是用单引号来做转义符的。比如下面例子是存储过程里查询时的语句示例execcndoup_getpageofrecords@pagesize=10,@currentpage=1,@columns='*',@tablename='ROOM',@condition='ROOMTYPElike‘%标准间%'',@asccolumn='ROOMID',@bitordertype=1,@pkcolumn='ROOMID'红色部分是会报错的,应该写成@condition='ROOMTYPElike‘‘%标准间%'‘',蓝色部分不是双引号,而是两个单引号...
数据库操作教程 2022-09-23 17:28:39 -
SQL事务用法begintran,committran和rollbacktran的用法
具体用法如下:复制代码代码如下:--=============================================--Author:cynimoon--Createdate:2009-10-09--Description:示例存储过程--=============================================--EXECTEST_PROC'文综','包括历史,地理,政治','政治','文综的一门'CREATEPROCEDURE[dbo].[TEST_PROC]@A_NameNVARCHAR(20),--A表姓名@A_RemarkNVARCHAR(4000),--A表备注@B_NameNVARCHAR(20),--B表姓名@B_RemarkNVARCHAR(4000)--B表备注ASBEGINTRYBEGINTRAN--在A表中插入数据INSERTINTO[dbo].[A]([A_Name],[A_Remark])VALUES(@A_Name,@A_Remark)--在B表中插入数据INSERTINTO[dbo].[B]([A_ID],[B_Name],[B...
数据库操作教程 2022-09-23 17:25:24 -
SQL2000事务回滚问题探讨
复制代码代码如下:createproceduretest_tranassetxact_aborton-----用@@error判断,对于严重的错误,系统根本就不会执行随后对@@error的判断,会直接终止执行。所以设置setxact_aborton是必要的BEGINTRANSACTIONRemoteUpdateinsertpsn_degreevalues(22,'test')select1/0IF@@error!=0BEGINROLLBACKTRANSACTIONRemoteUpdateRAISERROR('出错!网络速度慢或断线!',16,16)WITHSETERRORRETURN---没有return将继续向下执行endelsebeginCOMMITTRANSACTIONRemoteUpdateend也可更改为:复制代码代码如下:IF@@error!=0BEGINROLLBACKTRANSACTIONRemoteUpdateRAISERROR('出错!网络速度慢或断线!',16,16)WITHSETERRORRETURN---没有return将继续向下执行endCOMMITTRAN...
数据库操作教程 2022-09-23 17:18:28 -
sql不常用函数总结以及事务,增加,删除触发器
sql不常用函数总结以及事务,增加,删除触发器distinct删除重复行declare@x申明一个变量convert(varchar(20),tscore.tenglish)类型转换cast(xxasvarchar(10))类型转换www...
数据库操作教程 2022-09-23 17:08:54 -
case嵌套查询与连接查询你需要懂得
1、Case子查询连接查询复制代码代码如下:select*fromscorecreatedatabasedemousedemocreatetable[user]([uId]intidentity(1,1)primarykey,[name]varchar(50),[level]int--1骨灰大虾菜鸟)insertinto[user](name,level)values('犀利哥',1)insertinto[user](name,level)values('小月月',2)insertinto[user](name,level)values('芙蓉姐姐',3)--caseend单值判断相当于switchcase--then后面的返回值类型必须一致select[name],case[level]when1then'骨灰'when2then'大虾'when3then'菜鸟'endas'等级'from[user]useMySchoolselect*fromscore--caseend第二种用法,相当于多重if语句selectstudentId,casewhenenglish>=90then...
数据库操作教程 2022-09-23 17:04:01 -
SQLServer误区30日谈第1天正在运行的事务在服务器故障转移后继续执行
误区#1:在服务器故障转移后,正在运行的事务继续执行这当然是错误的!每次故障转移都伴随着某种形式的恢复。但是如果当正在执行的事务没有Commit时,由于服务器或实例崩溃导致连接断开,SQLServer可没有办法在故障转移后的服务器重新建立事务的上下文并继续执行事务-无论你使用的故障转移方式是集群,镜像,日志传送或是SAN复制...
数据库操作教程 2022-09-23 17:01:50 -
SQLServer误区30日谈第15天CheckPoint只会将已提交的事务写入磁盘
误区#15:CheckPoint只会将已提交的事务写入磁盘错误这个误区是由于太多人对日志和恢复系统缺少全面的了解而存在已久。CheckPoint会将自上次CheckPoint以来所有在内存中改变的页写回磁盘(译者注:也就是脏页),或是在上一个CheckPoint读入内存的脏页写入磁盘...
数据库操作教程 2022-09-23 17:00:27 -
SQLServer误区30日谈第26天SQLServer中存在真正的“事务嵌套”
误区#26:SQLServer中存在真正的“事务嵌套”错误 嵌套事务可不会像其语法表现的那样看起来允许事务嵌套。我真不知道为什么有人会这样写代码,我唯一能够想到的就是某个哥们对SQLServer社区嗤之以鼻然后写了这样的代码说:“玩玩你们”...
数据库操作教程 2022-09-23 16:59:27 -
SQLServer误区30日谈第28天有关大容量事务日志恢复模式的误区
误区#28:有关大容量事务日志恢复模式的几个误区28a)常见的DML操作可以被“最小记录日志” 不是。在大容量事务日志恢复模式下只有一小部分批量操作可以被“最小记录日志”,这类操作的列表可以在OperationsThatCanBeMinimallyLogged找到...
数据库操作教程 2022-09-23 16:58:54 -
sqlserver存储过程带事务拼接id返回值
删除一条留言信息会级联删除回复信息,这时我们需要用到事务,如下SQL复制代码代码如下:ALTERPROCEDURE[dbo].[proc_tb_leaveword_delete] ( @leavewordIDINT, @recordTINYINTOUTPUT ) AS BEGIN BEGINTRY BEGINTRANSACTION DELETEFROMtb_leavewordIDWHEREleavewordID=@leavewordID &...
数据库操作教程 2022-09-23 16:50:04