sqlserver 2012存储过程

存储过程的异常和事物的用法:

https://www.cnblogs.com/liuguanghai/p/5460855.html

基本语法:

https://www.cnblogs.com/lsgsanxiao/p/10878122.html

判断表名,存储过程名是否存在:

https://www.cnblogs.com/li-peng/archive/2013/01/24/2874517.html

1.新建一个自己想要实现的存储过程

模板:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE  DemoPROCEDURE
AS
BEGIN
	SET NOCOUNT ON;
	Set XACT_ABORT ON;  --有两个值,若是off出错语句不会执行,其他语句继续执行,若是on 所有语句都会回滚。
	Begin try
		--这个位置写你要执行的sql
		--1.首先要判断你要创建的表是否存在,若存在删除表中的所有数据,再填入最新的数据。
		-- 判断要创建的表名是否存在
		if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[test03]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
		-- 删除表
		begin
		drop table [dbo].[test03]
		end
		--2.你自己的业务逻辑
			--2.1创建要生成的表
			create table test03 
			( 
					[pro] [nvarchar](50)  NOT NULL, 
					[long] [decimal](18,9) NOT NULL, 
					[latitude] [decimal](18,9) NOT NULL, 
			); 
			--2.2将查询结果集(多条数据)插入临时表 
			insert into test03 select * from dbo.map ;
			
		--3.执行成功,向日志里面插入一条成功的数据
		exec TransformLogg @SUCCEED='成功';
	End try
	Begin Catch
		--异常的处理方法,向日志里面插入一天数据
		exec TransformLogg @SUCCEED='执行失败';
	End Catch
END
GO

2.把刚刚新建的存储过程添加到统一调度的存储过程内

USE [U9TransfromBQC]   --这个位置不固定,与你使用的数据库有关。
GO
/****** Object:  StoredProcedure [dbo].[DemoPROCEDURE]    Script Date: 2021-08-17 18:08:22 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER  PROCEDURE dbo.cc_proce
AS
BEGIN
	SET NOCOUNT ON;
	Set XACT_ABORT Off;  --有两个值,若是off出错语句不会执行,其他语句继续执行,若是on 所有语句都会回滚。
	Begin try
		exec  dbo.DemoPROCEDURE;   --这给位置写自己创建的存储名和参数
		exec  dbo.test003;          --这给位置写自己创建的存储名和参数
	End try
	Begin Catch
		SELECT ERROR_NUMBER() AS ErrorNumber,
		ERROR_MESSAGE() AS ErrorMessage,
		ERROR_PROCEDURE() AS ERRORPROCEDURE;
	End Catch
END
GO

3.日志插入存储过程Demo

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE TransformLogg
(   
@SUCCEED		nvarchar(10)
)
AS
BEGIN
	SET NOCOUNT ON;
	insert into dbo.TransformLog (ErrorNumber,ErrorMessage,ERRORPROCEDURE,SUCCESSMSG,DATEMSG)values(ERROR_NUMBER(),ERROR_MESSAGE(),ERROR_PROCEDURE(),@SUCCEED,(GETDATE()));
END
GO

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值