sql中“raiserror(4008,16,10)”语句是什么意思?里面的数字是什么意思?
3个回答
展开全部
RAISERROR 语句2007-06-07 16:30说明
此语句用于发出错误信号和向客户端发送消息。
语法
RAISERROR error-number [ format-string ] [, arg-list ]
参数
error-number error-number 是大于 17000 的五位整数。错误号存储在全局变量 @@error 中。
format-string 如果未提供 format-string 或者其为空,则使用错误号在系统表中查找错误消息。Adaptive Server Enterprise 从 SYSMESSAGES 表中获取的消息范围为 17000-19999。在 Adaptive Server Anywhere 中,此表为空视图,因此这个范围内的错误消息应该提供格式字符串。编号为 20000 或更大的错误消息从 SYS.SYSUSERMESSAGES 表中获取。
在 Adaptive Server Anywhere 中,format-string 的长度最多可达 255 字节。
Adaptive Server Enterprise 中的 RAISERROR 语句支持的扩展值在 Adaptive Server Anywhere 中不受支持。
对于可选参数列表中的参数,格式字符串可以包含占位符。这些占位符的形式为 %nn!,其中 nn 是介于 1 到 20 之间的整数。
中间 RAISERROR 状态和代码信息在过程终止后会丢失。如果在返回时伴随 RAISERROR 发生了错误,则返回错误信息,而 RAISERROR 信息将丢失。应用程序可以通过在不同的执行点检查 @@error 全局变量,查询中间 RAISERROR 状态。
用法
RAISERROR 语句允许发出用户定义的错误并向客户端发送消息。
权限
无。
副作用
无。
另请参见
CREATE TRIGGER 语句 [T-SQL]
ON_TSQL_ERROR 选项 [compatibility]
CONTINUE_AFTER_RAISERROR 选项 [compatibility]
标准和兼容性
SQL/92 Transact-SQL 扩展。
SQL/99 Transact-SQL 扩展。
Sybase 受 Adaptive Server Enterprise 支持。
示例
下面的语句引发错误 23000(该错误在用户定义的错误范围内)并向客户端发送消息。请注意在 error-number 和 format-string 参数之间有一个逗号。逗号后的第一项被解释为参数列表中的第一项。
RAISERROR 23000 'Invalid entry for this column: %1!', @val
下一个示例使用 RAISERROR 禁止连接。
create procedure DBA.login_check()
begin
// Allow a maximum of 3 concurrent connections
if( db_property('ConnCount') > 3 ) then
raiserror 28000
'User %1! is not allowed to connect -- there are already %2! users logged on',
current user,
cast(db_property('ConnCount') as int)-1;
else
call sp_login_environment;
end if;
end
go
grant execute on DBA.login_check to PUBLIC
go
set option PUBLIC.Login_procedure='DBA.login_check'
go
此语句用于发出错误信号和向客户端发送消息。
语法
RAISERROR error-number [ format-string ] [, arg-list ]
参数
error-number error-number 是大于 17000 的五位整数。错误号存储在全局变量 @@error 中。
format-string 如果未提供 format-string 或者其为空,则使用错误号在系统表中查找错误消息。Adaptive Server Enterprise 从 SYSMESSAGES 表中获取的消息范围为 17000-19999。在 Adaptive Server Anywhere 中,此表为空视图,因此这个范围内的错误消息应该提供格式字符串。编号为 20000 或更大的错误消息从 SYS.SYSUSERMESSAGES 表中获取。
在 Adaptive Server Anywhere 中,format-string 的长度最多可达 255 字节。
Adaptive Server Enterprise 中的 RAISERROR 语句支持的扩展值在 Adaptive Server Anywhere 中不受支持。
对于可选参数列表中的参数,格式字符串可以包含占位符。这些占位符的形式为 %nn!,其中 nn 是介于 1 到 20 之间的整数。
中间 RAISERROR 状态和代码信息在过程终止后会丢失。如果在返回时伴随 RAISERROR 发生了错误,则返回错误信息,而 RAISERROR 信息将丢失。应用程序可以通过在不同的执行点检查 @@error 全局变量,查询中间 RAISERROR 状态。
用法
RAISERROR 语句允许发出用户定义的错误并向客户端发送消息。
权限
无。
副作用
无。
另请参见
CREATE TRIGGER 语句 [T-SQL]
ON_TSQL_ERROR 选项 [compatibility]
CONTINUE_AFTER_RAISERROR 选项 [compatibility]
标准和兼容性
SQL/92 Transact-SQL 扩展。
SQL/99 Transact-SQL 扩展。
Sybase 受 Adaptive Server Enterprise 支持。
示例
下面的语句引发错误 23000(该错误在用户定义的错误范围内)并向客户端发送消息。请注意在 error-number 和 format-string 参数之间有一个逗号。逗号后的第一项被解释为参数列表中的第一项。
RAISERROR 23000 'Invalid entry for this column: %1!', @val
下一个示例使用 RAISERROR 禁止连接。
create procedure DBA.login_check()
begin
// Allow a maximum of 3 concurrent connections
if( db_property('ConnCount') > 3 ) then
raiserror 28000
'User %1! is not allowed to connect -- there are already %2! users logged on',
current user,
cast(db_property('ConnCount') as int)-1;
else
call sp_login_environment;
end if;
end
go
grant execute on DBA.login_check to PUBLIC
go
set option PUBLIC.Login_procedure='DBA.login_check'
go
参考资料: http://hi.baidu.com/trip008/blog/item/d6139ab70e9fe9f531add1b5.html
展开全部
raiserror(4008,16,10)是错误的!
信息必须是文字类型
你看看这个小例子你就应该知道了
RAISERROR('Error in Transaction!',14,1)
显示结果:
消息 50000,级别 14,状态 1,第 1 行
Error in Transaction!
信息必须是文字类型
你看看这个小例子你就应该知道了
RAISERROR('Error in Transaction!',14,1)
显示结果:
消息 50000,级别 14,状态 1,第 1 行
Error in Transaction!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
抛出错误
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询