none
还是抓取error的问题 RRS feed

  • 问题

  • DECLARE @_count INT
    DECLARE @_params nvarchar(125)
    DECLARE @_sql nVARCHAR(100)
    DECLARE @_error INT
    SELECT @_sql='insert a values (''a''); '
    --set @_params = N'@countOut int output'
    exec sp_executesql @_sql--,@_params,@countOut = @_count output
    SELECT @_error=@@ERROR
    PRINT @_error

    如果a表上有2个栏位,像上面那样肯定会报错。

    执行结果是:

    Msg 213, Level 16, State 1, Line 1
    Insert Error: Column name or number of supplied values does not match table definition.
    213

    但是如果我执行

    DECLARE @_count INT
    DECLARE @_params nvarchar(125)
    DECLARE @_sql nVARCHAR(100)
    DECLARE @_error INT
    SELECT @_sql='insert a(id) values (''a''); '
    --set @_params = N'@countOut int output'
    exec sp_executesql @_sql--,@_params,@countOut = @_count output
    SELECT @_error=@@ERROR
    PRINT @_error

    执行结果是:

    Msg 245, Level 16, State 1, Line 1
    Conversion failed when converting the varchar value 'a' to data type int.

    a的id栏位是int型的。这样就不能抓取出错误号。

    那我要怎么才能抓取出这个错误号呢?

    我发现真的sqlserver 2000的这些东西都好弱。


    If you haven't all the things you want,be grateful for the things you don't have that you didn't want.
    2011年7月22日 3:03

答案

全部回复