源代码如下: declare @CodeType int --编码的类型 declare @Code nvarchar(100) --传的编码 declare @CodeLen int --传入的编码长度 declare @CodingRule varchar(20) --编码的规则 declare @TableName Nvarchar(100) --对应的表名 declare @CharFlag int --字符?数字?set @CodeType=4 set @Code='A0502' set @CodeLen=len(rtrim(ltrim(@Code)))select @TableName=KeyWord,@CodingRule=CodingRule,@CharFlag=CharFlag from p_gradeDef where iSerial=@CodeTypeif(@CharFlag=0) begin select convert(int,@Code) if(@@error<>0) begin print '只允许数字' end else begin print '符合要求' end end
返回最后执行的 Transact-SQL 语句的错误代码。语法
@@ERROR返回类型
integer注释
当 Microsoft® SQL Server™ 完成 Transact-SQL 语句的执行时,如果语句执行成功,则 @@ERROR 设置为 0。若出现一个错误,则返回一条错误信息。@@ERROR 返回此错误信息代码,直到另一条 Transact-SQL 语句被执行。您可以在 sysmessages 系统表中查看与 @@ERROR 错误代码相关的文本信息。由于 @@ERROR 在每一条语句执行后被清除并且重置,应在语句验证后立即检查它,或将其保存到一个局部变量中以备事后查看。
服务器: 消息 245,级别 16,状态 1,行 21
将 nvarchar 值 'A0502' 转换为数据类型为 int 的列时发生语法错误。
我是查询分析器中执行,建成存储过程执行结果也一样。
declare @CodeType int --编码的类型
declare @Code nvarchar(100) --传的编码
declare @CodeLen int --传入的编码长度
declare @CodingRule varchar(20) --编码的规则
declare @TableName Nvarchar(100) --对应的表名
declare @CharFlag int --字符?数字?set @CodeType=4
set @Code='A0502'
set @CodeLen=len(rtrim(ltrim(@Code)))select @TableName=KeyWord,@CodingRule=CodingRule,@CharFlag=CharFlag
from p_gradeDef
where iSerial=@CodeTypeif(@CharFlag=0)
begin
select convert(int,@Code)
if(@@error<>0)
begin
print '只允许数字'
end
else
begin
print '符合要求'
end
end