首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

错误处理有关问题,无法获取错误

2012-03-09 
异常处理问题,无法获取异常SQL codeDECLARE @cmd NVARCHAR(MAX)DECLARE @TargetDir NVARCHAR(MAX)BEGIN TR

异常处理问题,无法获取异常

SQL code
DECLARE @cmd NVARCHAR(MAX)DECLARE @TargetDir NVARCHAR(MAX)BEGIN TRY     SET @TargetDir='L:\DRI'    SET @cmd='master.dbo.xp_create_subdir N''' + REPLACE(@TargetDir,'''','''''') + ''''    EXEC(@cmd) END TRY    BEGIN CATCH     SELECT ERROR_MESSAGE()END CATCH


请教:为什么SELECT ERROR_MESSAGE()无法获取异常信息。

[解决办法]
SQL code
DECLARE @cmd NVARCHAR(MAX)DECLARE @TargetDir NVARCHAR(MAX)BEGIN TRY     SET @TargetDir='L:\DRI'    SET @cmd='master.dbo.xp_create_subdir N''' + REPLACE(@TargetDir,'''','''''') + ''''    EXEC(@cmd)    go    raiserror('生成一个错误消息',11,1) END TRY    BEGIN CATCH    SELECT ERROR_MESSAGE()  select error_message() as 错误消息,         error_severity() as严重级别,         error_state() as state;END CATCH--这样看看有没有结果?
[解决办法]
问题应该出在 

SET @TargetDir='L:\DRI'
SET @cmd='master.dbo.xp_create_subdir N''' + REPLACE(@TargetDir,'''','''''') + ''''
EXEC(@cmd)


这3句上面
你 print @cmd出来看看结果是什么?
[解决办法]
SQL code
我运行的结果DECLARE @cmd NVARCHAR(MAX)DECLARE @TargetDir NVARCHAR(MAX)BEGIN TRY     SET @TargetDir='L:\DRI'    SET @cmd='master.dbo.xp_create_subdir N''' + REPLACE(@TargetDir,'''','''''') + ''''    EXEC(@cmd) END TRY    BEGIN CATCH     SELECT ERROR_MESSAGE()END CATCH/*p_create_subdir() 返回了错误 3,“系统找不到指定的路径。”*/
[解决办法]
SQL code
--在最前面加上 selectDECLARE @cmd NVARCHAR(MAX)DECLARE @TargetDir NVARCHAR(MAX)BEGIN TRY     SET @TargetDir='L:\DRI'    SET @cmd='select master.dbo.xp_create_subdir N''' + REPLACE(@TargetDir,'''','''''') + ''''    EXEC(@cmd) END TRY    BEGIN CATCH     SELECT ERROR_MESSAGE()END CATCH/*----------------------------------------------------------------------------------------------------------------无法绑定由多个部分组成的标识符 "master.dbo.xp_create_subdir"。(1 行受影响)*/ 

热点排行