Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 如何使用try、throw和catch在错误处理中打印消息_Sql Server 2008_Error Handling - Fatal编程技术网

Sql server 2008 如何使用try、throw和catch在错误处理中打印消息

Sql server 2008 如何使用try、throw和catch在错误处理中打印消息,sql-server-2008,error-handling,Sql Server 2008,Error Handling,我想在查询中打印一条消息(“数据库中不存在employe表”) 我的问题是: create proc sp_emprecord as begin select * from employe end begin try execute sp_emprecord end try begin catch select error_message() as errormessage, error_number() as erronumber, err

我想在查询中打印一条消息(“数据库中不存在employe表”)

我的问题是:

create proc sp_emprecord
as 
begin
    select * from employe
end

begin try
    execute sp_emprecord
end try

begin catch
    select
    error_message() as errormessage,
    error_number() as erronumber,
    error_state() as errorstate,
    error_procedure() as errorprocedure,
    error_line() as errorline;
 end catch
试试这个:

create proc sp_emprecord
as 
begin
    select * from employe
end
go
begin try
    execute sp_emprecord
end try

begin catch
    if(ERROR_NUMBER() = 208)
        RAISERROR ('The table employe is not exist in database', 0, 1) WITH NOWAIT;
    else
        select
        error_message() as errormessage,
        error_number() as erronumber,
        error_state() as errorstate,
        error_procedure() as errorprocedure,
        error_line() as errorline;
 end catch