set nocount onalter table tbl alter column a1 nvarchar(2) 
set @err=@@error
if @err<>0 
select @err

解决方案 »

  1.   

    to:CrazyFor(蚂蚁)加上set nocount on,
    2,3,4句仍然未被继续执行,还有什么设置?
      

  2.   

    因为
    alter table tbl alter column a1 nvarchar(2) 
    返回MS SQL的RUNTIME ERROR,SQL QUERY ANALYZER就直接返回,后面的SQL就不执行了.
      

  3.   

    to :leimin(黄山光明顶)1 有没有办法在sp中继续获得控制权,执行后续语句呢?
    2 似乎与消息的级别有关,我能否改变特定消息(如:消息 8152,级别 16,状态 6)的级别呢?
      

  4.   

    1.在SP中你不可以修改表结构,所以就不会有这样的问题.
       如果在SP中没有SQL的内部错误,SQL 语句会顺序执行的.
    2.你可以自己定义ERROR的消息和级别(RAISERROR()),但无法修改系统的.
      

  5.   

    0 update tblset a1=left(a1,2)
    1 alter table tbl alter column a1 nvarchar(2) 
    2 set @err=@@error
    3 if @err<>0 
    4 select @err
      

  6.   

    如果ap被中断,我无法将详细错误返回,前端程序用户无法知道发生了什么?
    1 ado.connection.errors 中会纪录错误,但有时不可靠。