-
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 -
SQLSERVER函数之深入表值函数的处理分析
有些情况可能用下表值函数,表值函数主要用于数据计算出来返回结果集,可以带参数(和视图的一个大的区别),如果函数中没有过多的逻辑处理,如变量的定义,判断等,表值函数返回结果集可以简单向下面这么写:复制代码代码如下:CREATEFUNCTIONFun_GetReportNews(@typevarchar(10))RETURNSTABLEASRETURN( SELECTTPR_ID,TPR_Title,TPR_DateFROMTP_ReportNewsWHERETPR_Type=@type)调用的时候就SELECTXXFROMFun_GetReprotNews('xx')如果函数中要定义变量,进行判断计算处理什么的,写法有点不一样了,要定义表变量才行,表值函数里是不允许创建临时表的,只能是表变量。举个简单的写法样式,如下:复制代码代码如下:CREATEFUNCTIONFUN_GetInfoList(@typevarchar(10))RETURNS@TableTABLE(TPR_IDint,TPR_Titlenvarchar(100),TPR_PubDatedatetime)ASBE...
数据库操作教程 2022-09-23 17:20:01 -
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 -
使用FORFILES命令来删除SQLServer备份的批处理
虽然有很多种方式可以解决这个问题,但是我们可以用T-SQL代码来处理这个文件删除过程。我用xp_cmdshell命令和FORFILES命令来处理类似于你所列出的过程...
数据库操作教程 2022-09-23 17:16:55 -
sqlserver脚本和批处理指令小结
一.脚本基础 1.USE语句 设置当前数据库。 2.声明变量 语法:DECLARE@变量名变量类型 在声明变量后,给变量赋值之前,变量的值为NULL...
数据库操作教程 2022-09-23 17:14:24 -
sql不常用函数总结以及事务,增加,删除触发器
sql不常用函数总结以及事务,增加,删除触发器distinct删除重复行declare@x申明一个变量convert(varchar(20),tscore.tenglish)类型转换cast(xxasvarchar(10))类型转换www...
数据库操作教程 2022-09-23 17:08:54 -
判断触发器正在处理的是插入,删除还是更新触发
但是有时候,可以视看处进逻辑程度,可以把三者写成一个触发器,只是在其中稍作判断而已。你可以根据从下面方法判断触发器是是处理了插入,删除还是更新触发的:复制代码代码如下:--宣告两个变量DECLARE@DBIT=0DECLARE@IBIT=0--如果在DELETED内部临时触发表找到记录,说明旧数据被删除IFEXISTS(SELECTTOP11FROMDELETED)SET@D=1--如果在INSERTED内部临时触发表找到记录,说明有新数据插入IFEXISTS(SELECTTOP11FROMINSERTED)SET@I=1--如果两个表都有记录,说明触发器是执行更新触发IF@I=1AND@D=1PRINT(N'更新...
数据库操作教程 2022-09-23 17:07:51 -
还原sqlserver数据库的处理方法
如何从备份设备还原备份(企业管理器)从备份设备还原备份展开服务器组,然后展开服务器。展开"数据库"文件夹,右击数据库,指向"所有任务"子菜单,然后单击"还原数据库"命令...
数据库操作教程 2022-09-23 17:06:47 -
sql语句中单引号,双引号的处理方法
下面我们就分别讲述,虽然说的是Insert语句,但是Select、Update、Delete语句都是一样的。假如有下述表格: mytabe 字段1 username 字符串型(姓名) 字段2 age 数字型(年龄) 字段3 birthday 日期型(生日)&nbs...
数据库操作教程 2022-09-23 17:05:34 -
sql处理数据库锁的存储过程分享
邹建2004.4复制代码代码如下:/*--调用示例execp_lockinfo1--*/alterprocp_lockinfo1@kill_lock_spidbit=1,--是否杀掉死锁的进程,1杀掉,0仅显示@show_spid_if_nolockbit=1--如果没有死锁的进程,是否显示正常进程信息,1显示,0不显示asdeclare@countint,@snvarchar(max),@iintselectid=identity(int,1,1),标志,进程ID=spid,线程ID=kpid,块进程ID=blocked,数据库ID=dbid,数据库名=db_name(dbid),用户ID=uid,用户名=loginame,累计CPU时间=cpu,登陆时间=login_time,打开事务数=open_tran,进程状态=status,工作站名=hostname,应用程序名=program_name,工作站进程ID=hostprocess,域名=nt_domain,网卡地址=net_addressinto#tfrom(select标志='死锁的进程',spid,kpid,a...
数据库操作教程 2022-09-23 17:03:15 -
SQLserver2000企业版出现"进程51发生了严重的异常"错误的处理方法
情景:一直用到比较好,突然不行处理步骤:关了360等防火墙;(影响不大,但是有可能是因为杀毒软件处理时把某个关键文件heal了)装了微软补丁http://www.microsoft.com/downloads/details.aspx?FamilyID=9552d43b-04eb-4af9-9e24-6cde4d933600&displaylang=zh-cn#filelist重新启动就ok了。这个工具是微软SQLServer2000安全工具,描述为“SQLServer2000安全工具用于扫描SQLServer实例并检测安全漏洞,然后应用更新到被感染的文件...
数据库操作教程 2022-09-23 17:02:33 -
SQLServer误区30日谈第1天正在运行的事务在服务器故障转移后继续执行
误区#1:在服务器故障转移后,正在运行的事务继续执行这当然是错误的!每次故障转移都伴随着某种形式的恢复。但是如果当正在执行的事务没有Commit时,由于服务器或实例崩溃导致连接断开,SQLServer可没有办法在故障转移后的服务器重新建立事务的上下文并继续执行事务-无论你使用的故障转移方式是集群,镜像,日志传送或是SAN复制...
数据库操作教程 2022-09-23 17:01:50