在代码中用print()函数打印变量
在查询分析器中调试可看到结果

解决方案 »

  1.   

    打印变量怎么打?打印到什么地方,可以具体点吗?
    对了,查询分析器在SQL2000中是不是事件探查器?
      

  2.   

    我不是很懂SQL,可否详细点...谢谢大哥大姐
      

  3.   

    对你需要调试的触发器,写一个简单的存储过程,比如 create procedure Test_Debug
    as 
      insert into tablename(这个表上有你要调试的触发器)
       select ......
    编译该存储过程,
    然后在查询分析器里面调试
      

  4.   

    些一个简单的存储过程,如insert,update,delete 也就是一句话,然后你在查询分析器里面调试这个存储过程,你就可以调试你的触发器了!
      

  5.   

    可否详细点我比较苯,我要是有一个表PRO_COD触发器为:
    REATE TRIGGER PRO_COD_INS ON dbo.pro_cod 
    FOR INSERT 
    ASDECLARE @NUMMIN INT
    DECLARE @NUMMAX INT
    DECLARE @NUMSUP INT
    DECLARE @UQI INT
    DECLARE @PRI DECIMAL(18,6)
    DECLARE @PRIuni DECIMAL(18,6)
    DECLARE @UQIDEP INT
    DECLARE @I INTSELECT @NUMSUP =(SELECT MIN(UQI) FROM PRD_COD WHERE FLA_SUP='Y')
    SELECT @NUMMIN=(SELECT MIN(UQI) FROM DEP_COD WHERE CAT_DEP='PER' OR CAT_DEP='UNI' OR CAT_DEP='STO')
    SELECT @NUMMAX=(SELECT MAX(UQI) FROM DEP_COD WHERE CAT_DEP='PER' OR CAT_DEP='UNI' OR CAT_DEP='STO')
    SELECT @PRI=(SELECT PRI_PER FROM INSERTED)
    SELECT @PRIuni=(SELECT PRI_uni FROM INSERTED)
    SELECT @UQI=(SELECT UQI FROM INSERTED)
    SELECT @I = @NUMMIN-100 WHILE @I >= @NUMMIN-100BEGINSELECT @I = @I+100 
    SELECT  @UQIDEP=(SELECT UQI FROM DEP_COD WHERE UQI=@I) IF @I>@NUMMAX BREAK ELSEIF @UQIDEP IS NOT NULL 
    BEGIN
    INSERT INTO PRO_STO
    VALUES  (@I,@UQI,'',NULL,NULL,0,0,0,0,0,0,0,0,0,0,GETDATE(),NULL,NULL,'','',0,0,0,0,0,0,0,0,0,0,0,0,0,1,@PRI,'AAA') INSERT INTO PRO_SLL_ANA
    VALUES  (@I,@UQI,@NUMSUP,0,0,0,0,0,0,0,0,0,0)
    END 
    END我怎么在查询分析调试呢?
      

  6.   

    first,
    确认你的SQL调试器能调试存储过程,然后写一个很简单的存储过程,
    该过程只是简单的插入一行数据
    create procedure Test_debug
    as 
     insert into PRO_COD(field1,field2,...) 
     select value1,value2,value3...
    编译该存储过程,
    按F8打开SQL Query的对象浏览器,找到刚才编译好的存储过程,
    右键,在弹出的菜单中选择调试就OK了。