SQL大圣之路笔记——存储过程中含有大量sql时,使用事务处理机制

 1 --事务开始,如果中间有系统错误,则Roll Back
 2      BEGIN TRY
 3              BEGIN TRAN
 4            --存储过程的全部脚本
 5                     SELECT *
 6                     FROM    #raw_data
 7                     WHERE   id = @rowNo
 8
 9               COMMIT TRAN
10      END TRY
11      BEGIN CATCH
12      ROLLBACK TRAN
13        --系统错误
14         INSERT  INTO store_batch_import_templog
15                             ( Remark
16                             )
17                             SELECT  ‘系统错误‘ ,
18
19      END  CATCH
20
21            
时间: 2024-10-14 10:21:23

SQL大圣之路笔记——存储过程中含有大量sql时,使用事务处理机制的相关文章

SQL大圣之路笔记——SQL存储过程优化之 nocount

在存储过程中,经常用到SET NOCOUNT ON: 作用:阻止在结果集中返回显示受T-SQL语句或则usp影响的行计数信息.当SET ONCOUNT ON时候,不返回计数,当SET NOCOUNT OFF时候,返回计数: 即使当SET NOCOUNT ON 时候,也更新@@RowCount: 当SET NOCOUNT on时候,将不向客户端发送存储过程每个语句的DONE_IN_proc消息,如果存储过程中包含一些并不返回实际数据的语句,网络通信流量便会大量减少,可以显著提高应用程序性能: SE

SQL大圣之路笔记——SQL学习笔记

1.复习->自连接 针对于什么结构的表做自连接 关系列引用本表的主键列信息 这种表不是单一的含义->外连接 left join right join full join->case子句 必须出现在select语句中 完成选择功能->常用全局变量:@@identity,@@error->over子句:结合编号.聚合使用 sum(ocount) over() 开窗函数:将多行数据进行划区 over(partition by 列名 order by 列名) rank() row_n

SQL大圣之路笔记——把数据库中表里的数据导出成Excel(Copy时,会因分隔符问题导致许多数据存放在一个单元格中)

1.选中DB, 右击选择"Tasks",选中"Export Data" 点击. 2.点击"Next", Authentication 选择使用 "Windows 用户名认证" or "SQL Server 用户名,密码认证",点击"Next".    3.保存文件格式:"Excel", 选择保存文件的路径.Excel 版本,点击"Next".-&g

SQL大圣之路笔记——把Excel中的数据通过Access导入到DataBase中

把Excel中的数据通过Access导入到DataBase中 1.打开Access ,点击“EXTERNAL DATA",选择上传”excel",选中需要导入的excel,点击ok. 2.选择excel中需要上传数据的sheet,点击”next",再点击“next”,选择列明,更改 Data Type (Short Text类型导入后会成为nvarchar);点击“next”,再点击“next” ,设定导入DB之后的表名,点击“finish”. 3.右击表名,点击“Expor

SQL大圣之路笔记——SQL 获取excel中的数据

1 select 2 --case (isnumeric(CMF_No)) when 1 then Convert(decimal(18,0),CMF_No) 3 --else Convert(nvarchar(255),CMF_No) end as CMF_No,Disti_Name, 4 --case (isnumeric(Disti_Invoice_Num)) when 1 then Convert(decimal(18,0),Disti_Invoice_Num) else 'sss' e

SQL大圣之路笔记——SQL 创建索引 index

1 --创建索引的标准:根据实际的sql语句进行分析,’列’出现在where中的次数较多,时间损耗较大,则为这个‘列’建立索引, 2 3 --注意:不是越多越好,因为没建立一个‘列’索引,都要排序存储一次,会让数据库文件变大 4 5 6 --创建索引 7 create index index_name 8 on 表名(列名)

SQL大圣之路笔记——SQL 行转列,列转行

1 /*普通行列转换 2 (爱新觉罗.毓华 2007-11-18于海南三亚) 3 4 假设有张学生成绩表(tb)如下: 5 Name Subject Result 6 张三 语文 74 7 张三 数学 83 8 张三 物理 93 9 李四 语文 74 10 李四 数学 84 11 李四 物理 94 12 */ 13 14 ------------------------------------------------------------------------- 15 /* 16 想变成 1

SQL大圣之路笔记——SQL TRUNCATE,DELETE,DROP

TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行.但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少. DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项.TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放. TRUNCATE,DELETE,DROP放在一起比较:TRUNCATE TABLE:删除内容.释放空间但不删除定义.D

c#大圣之路笔记——SQL 通过创建存储过程,查看当前进程情况(是否造成表锁死等)

存储过程: 1 create procedure sp_who_lock 2 3 as 4 5 begin 6 7 declare @spid int,@bl int, 8 9 @intTransactionCountOnEntry int, 10 11 @intRowcount int, 12 13 @intCountProperties int, 14 15 @intCounter int 16 17 18 19 create table #tmp_lock_who ( 20 21 id i