存储过程模板
2010-12-28 10:58
127 查看
--IF EXISTS(SELECT * FROM sysobjects WHERE name='SPModel') -- DROP PROC SPModel --GO IF OBJECT_ID(N'dbo.SPModel',N'P') IS NOT NULL DROP PROC SPModel GO CREATE PROC dbo.SPModel ( @X1 as int ,@X2 as nvarchar(100) ,@Y1 as datetime ,@Y2 as decimal output ) AS /************************************************** Author: v-cuwang Date: YYYY-MM-DD Function Description: Built a Stored Procedure model, you must follow the rules to create your SP. ----------------------------------------------- Parameters: @X1 Datetype: Description: @X2 Datetype: Description: @Y1 Datetype: Description: @Y2 Datetype: Description: ----------------------------------------------- Modifier Date Description v-xiala 2010-12-25 For 3.5 release **********************************************/ BEGIN SET NOCOUNT ON /*--------------------------------------------- -------STEP1: Declare ---------------------------------------------*/ DECLARE @ErrorMessage nvarchar(4000) DECLARE @ErrorSeverity int DECLARE @ErrorState int DECLARE @XX1 int DECLARE @YY1 int /*--------------------------------------------- -------STEP2: Initilize ---------------------------------------------*/ SET @XX1=1 SET @YY1=2 /*--------------------------------------------- -------STEP3: Get data from table TA ---------------------------------------------*/ BEGIN TRY SELECT * FROM TA -- 一次性清空表,请使用truncate代替delete TRUNCATE TABLE tablename -- insert语句要把字段名写全 INSERT INTO tablename(col1, col2) VALUES(@XX1, @XX2); -- 批量插入 insert into tablename1(col1, col2) select col1, col2 from tablename2 -- 判断语句 if (@xxx1 = ? or @xxx2 = ?) begin ---- end else begin ---- end -- 循环语句 while (@xxx1 <> ?) begin ---- end -- 事务 ---- 如果显式使用事务,请注意SQL Server默认的事务隔离级别是读提交(Read Committed) ---- 如果使用更高级别的事务隔离级别,请详细阅读帮助文档,避免不必要的锁阻塞 BEGIN TRANSACTION INSERT INTO xxxxxTable(f1,f2) VALUES(@a,@b) SELECT @id=@@identity INSERT INTO abcTable(ff1,ff2,ff3) VALUES(@c,@id,@dd) IF @@error <> 0 --发生错误 BEGIN ROLLBACK TRANSACTION RETURN 0 END ELSE BEGIN COMMIT TRANSACTION RETURN 1 --执行成功 END END TRY -- 异常处理机制 ---- 1、在第一次使用异常处理机制之前声明异常变量 ---- 2、对容易发生错误的操作,用trycatch进行异常捕获(声明变量不需要) ---- 3、在清理资源后,将错误记录保存在自己的log表中,用exec-- ---- 4、最后使用raiserror将错误返回给调用者 ---- 5. begin catch 要紧跟着end try,中间不允许有其他语句 BEGIN CATCH ---- 清理上面try中使用的资源,如删除临时表、销毁游标、回滚事务等 ---- 设置错误变量 set @ErrorMessage = ERROR_MESSAGE() set @ErrorSeverity = ERROR_SEVERITY() set @ErrorState = ERROR_STATE() raiserror (@ErrorMessage, @ErrorSeverity, @ErrorState) END CATCH END GO
相关文章推荐
- Transaction And Lock--存储过程中使用事务的模板
- MySQL第五天---存储过程、查询区分大小写、事务(MySQL及Java实现的简单模板)
- 一个MySQL存储过程的模板
- sqlserver 函数、存储过程、游标与事务模板
- 存储过程开发模板
- 存储过程事务处理模板
- mysql创建存储过程及事件模板
- oracle 存储过程分页模板
- 【SQL模板】一.修改/新增存储过程TSQL
- 存储过程_例1(根据政策模板生成新政策)
- SQL 函数、存储过程、游标与事务模板
- 机房重构——模板方法模式+单例模式+存储过程优化组合查询
- 黄聪:如何用SQL Server内置的存储过程模板对数据库进行备份和恢复
- 存储过程游标模板
- CodeSmith下载与生成存储过程的一个模板
- Oracle 写存储过程的一个模板还有一些基本的知识点
- [SQL server]存储过程事务(模板)
- 关于codesmith的一点使用--自动生成数据库中所有表的存储过程使用模板
- 某公司的存储过程模板(摘抄自高大神的博客)
- 一个存储过程的 事务模板 跟大家分享