最新活动:电脑PC端+手机端+微网站+自适应网页多模板选择-建站388元起价!!!
当前位置:主页 > 网站建设 > 如何将sql执行的错误消息记录到本地文件中实现

如何将sql执行的错误消息记录到本地文件中实现

时间:2023-05-24 10:05:24 阅读: 文章分类: 网站建设 作者: 网站技术员

导读:1建站知识sql语句的错误信息都可以在sys.messages表里面找到,下面与大家分享下将sql 执行的错误消息记录到本地文件中,不会的seo网站优化网站建设。

seo网站优化网站建设

其实大家都知道sql语句的错误信息都可以在sys.messages表里面找到

如:

如果在执行语句在try...catch中 我们可以通过以下方法获取错误信息。sql语句如下:

复制代码 代码如下:

BEGIN TRY SELECT 3 / 0 END TRY BEGIN CATCH DECLARE @errornumber INT DECLARE @errorseverity INT DECLARE @errorstate INT DECLARE @errormessage NVARCHAR(4000) SELECT @errornumber = ERROR_NUMBER() , @errorseverity = ERROR_SEVERITY() , @errorstate = ERROR_STATE() , @errormessage = ERROR_MESSAGE() SELECT @errornumber , @errorseverity , @seo网站优化软件errorstate , @errormessage RAISERROR ( @errormessage, -- Message text, @errorseverity, -- Severity, @errorstate, -- State, @errornumber ); END CATCH

当然我这里是故意用RAISERROR再次抛出错误信息,运行结果如下:

现在我们来定义一个存储过程,其目的就是往本地文件中写入信息。

sql脚本如下:

复制代码 代码如下:

CREATE网seo优化趋势 Proc [dbo].[UCreateOrAppendTextFile](@Filename VarChar(100),@Text nVarchar(4000)) AS DECLARE @FileSystem int DECLARE @FileHandle int DECLARE @RetCode int DECLARE @RetVal int DECLARE @CreateOrAppend int EXECUTE @RetCode = sp_OACreate 'Scripting.FileSystemObject' , @FileSystem OUTPUT IF (@@ERROR|@RetCode > 0 Or @FileSystem < 0) RAISERROR ('could not create FileSystemObject',16,1) EXECUTE @RetCode = sp_OAMethod @FileSystem , 'FileExists', @RetVal out, @FileName IF (@@ERROR|@RetCode > 0) RAISERROR ('could not check file existence',16,1) -- If file exists then append else create SET @CreateOrAppend = case @RetVal when 1 then 8 else 2 end EXECUTE @RetCode = sp_OAMethod @FileSystem , 'OpenTextFile' , @FileHandle OUTPUT , @Filename, @CreateOrAppend, 1 IF (@@ERROR|@RetCode > 0 Or @FileHandle < 0) RAISERROR ('could not create File',16,1) EXECUTE @RetCode = sp_OAMethod @FileHandle , 'WriteLine' , NULL , @text IF (@@ERROR|@RetCode > 0 ) RAISERROR ('could not write to File',16,1) EXECUTE @RetCode = sp_OAMethod @FileHandle , 'Close' IF (@@ERROR|@RetCode > 0) RAISERROR ('Could not close file ',16,1) EXEC sp_OADestroy @filehandle IF (@@ERROR|@RetCode > 0) RAISERROR ('Could not destroy file object',16,1) EXEC sp_OADestroy @FileSystem

----------------------------------------然后执行该存储过程:

复制代码 代码如下:

exec UCreateOrAppendTextFile 'C:\Error.log','hello majaing'

如果遇到以下错误则说明Ole Automation Procedures没有启用

需要执行以下SQL:

复制代码 代码如下:

go sp_configure 'show advanced options', 1; GO RECONFIGURE; GO sp_configure 'Ole Automation Procedures', 1; GO RECONFIGURE; GO

运行即如果如图:

关键词标签: 错误 如何将

声明: 本文由我的SEOUC技术文章主页发布于:2023-05-24 ,文章如何将sql执行的错误消息记录到本地文件中实现主要讲述如何将,错误,如何将sql执行的错误消息记录到本地网站建设源码以及服务器配置搭建相关技术文章。转载请保留链接: https://www.seouc.com/article/web_6643.html

我的IDC 网站建设技术SEOUC.COM
专注网站建设,SEO优化,小程序设计制作搭建开发定制网站等,数千家网站定制开发案例,网站推广技术服务。
  • 5000+合作客服
  • 8年从业经验
  • 150+覆盖行业
  • 最新热门源码技术文章