在Sqlserver中使用Try Catch
2024-09-01 14:26:09
创建错误日志表:
CREATE TABLE ErrorLog(errNum INT,ErrSev NVARCHAR(1000),ErrState INT,ErrProc NVARCHAR(1000),ErrLine INT, ErrMsg NVARCHAR(2000))
创建错误日志记录存储过程:
CREATE PROCEDURE ErrorLog
AS
SELECT ERROR_NUMBER() AS ErrNum,ERROR_SEVERITY()AS ErrSev,ERROR_STATE() AS ErrState,ERROR_PROCEDURE() AS ErrProc,ERROR_LINE()AS ErrLine,ERROR_MESSAGE()AS ErrMsg
INSERT
INTO ErrorLog
VALUES(ERROR_NUMBER(),ERROR_SEVERITY(),ERROR_STATE(),ERROR_PROCEDURE(),ERROR_LINE(),ERROR_MESSAGE())
GO
写一个存储过程吧!里面使用一下Try Catch:
USE [Your_Test]
GO
/****** Object: StoredProcedure [dbo].[getTodayBirthday]
Script Date: 05/17/2010 15:38:46
Author:jinho
Desc:获?取?当?天?生?日?的?所?有?人?
******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[getTodayBirthday]
AS
BEGIN TRY
declare @today datetime;
SET @today = GETDATE();--获?取?今?天?的?日?期?
DECLARE @day VARCHAR(2);
SET @day =REPLACE(DAY(@today),0,'');
DECLARE @month VARCHAR(2) ;
SET @month = REPLACE(month(@today),0,'');
DECLARE @year VARCHAR(4);
SET @year = YEAR(@today);
SELECT * FROM dbo.UserInfo WHERE REPLACE(DAY(CONVERT(DATETIME,Birthday )),0,’’) =@day AND REPLACE(MONTH(CONVERT(DATETIME,Brithday)),0,’’)=@month AND Birthday IS NOT NULL
END TRY
BEGIN CATCH
ErrorLog --调用上面的存储过程,保存错误日志
END CATCH 说明:ERROR_NUMBER(),ERROR_SEVERITY(),ERROR_STATE(),ERROR_PROCEDURE(),ERROR_LINE(),ERROR_MESSAGE() 这几个函数只能用在Catch里面!
最新文章
- [Android]关于filed 遍历资源文件的排序问题
- UWP的拖拽功能
- [NOIP2013] 提高组 洛谷P1969 积木大赛
- 一道模拟题:改进的Joseph环
- SQL Server连接数据库失败,可能的问题!
- 《Java程序设计》第7周学习总结
- mvc annotation-driven作用
- php 模拟斗地主发牌简单易懂
- GSON 简介 示例
- PHP基础之 file_get_contents() 函数
- 自己写CPU第九阶段(3)——加载存储指令说明2(swl、swr)
- shell的数值计算,小数计算
- notepad++中双击选中字符串高亮颜色设置
- 安装64位office时,弹出提示,要求卸载32位office
- C++/C#:类Class与结构体Struct的区别
- vscode中PyLint报错Unable to import解决方案
- 再谈OPENCV(转)
- 【金融123】CNY和CNH的差异和关联
- Linux系统中各目录的作用
- 20181105_线程之Task
热门文章
- css3单冒号和双冒号的区别
- WDF - CSS 书写规范
- Python基本特殊方法之__new__
- ORACLE PL/SQL编程之触发器
- [ArgumentException: 可能证书“CN=JRNet01-PC”没有能够进行密钥交换的私钥,或者进程可能没有访问私钥的权限。有关详细信息,请参见内部异常。]
- LA2797 Monster Trap
- centos6.x 配置bond
- Angular2常用命令
- 在TreeView 控件上,如果双击任何一个节点的checkbox 只会收到一次After_Check事件 但是check属性变化两次(从false到true 再从true到false),请问该如何解决,谢谢!
- dubbox部署到jdk1.7环境,启动:java.lang.NoSuchMethodError: java.util.concurrent.ConcurrentHashMap.keySet()