zoukankan      html  css  js  c++  java
  • SQL Server 存储过程调式

    需要SQL Server 2008支持

    右键数据库中创建存储过程,创建TSQL文本或者使用MSSQL提供的存储过程模板(在database\Programmablity\Store Procedures右键导入模板)

    然后编写一个简单的存储过程如下:

    USE MASTER;
    IF OBJECT_ID(N'MASTER.DBO.TESTADD', N'P') IS NOT NULL
    DROP PROCEDURE [DBO].[TESTADD];
    GO
    
    CREATE PROCEDURE DBO.TESTADD
    @RET INT OUTPUT,
    @LHS INT, 
    @RHS INT
    AS
    BEGIN
        SET @RET=@LHS + @RHS
        RETURN @RET
    END
    GO
    
    IF OBJECT_ID(N'MASTER.DBO.TESTADD', N'P') IS NOT NULL
    PRINT 'HERE'
    GO

    其中判断是否存在存储过程是MSDN的代码,也可以使用如下判断方法:

    IF EXISTS (SELECT * FROM DBO.SYSOBJECTS WHERE ID = OBJECT_ID(N'MASTER.DBO.TESTADD') AND OBJECTPROPERTY(ID, N'ISPROCEDURE') = 1)
    DROP PROCEDURE DBO.TESTADD;
    GO

    这里需要注意的是删除存储过程不能带上数据库名字

    注意到存储过程中输入参数的顺序跟后面调用的参数顺序需要一致,也就是说跟函数的参数列表一样。

    接着按F5或者点击Execute执行脚本,接着可以看到打印出Here的信息,同时可以检查master数据库中programablity\store procedures已经存在了TESTADD。

    接着输入测试代码:

    DECLARE @LHS INT
    DECLARE @RHS INT
    DECLARE @RST INT
    DECLARE @RET INT
    SET @LHS = 1
    SET @RHS = 2
    EXEC @RET = MASTER.DBO.TESTADD @RST OUT, @LHS, @RHS
    PRINT @RET
    PRINT @RST

    接着F11就像VS一样进行调试,进入到例如存储过程的时候可以继续按F11来进入存储函数。

  • 相关阅读:
    modelsim(2)
    【管理心得之十六】我来吐槽 “面试”
    【管理心得之十五】没有100%的答案,只有70%认可的答案
    【管理心得之十四】团队中的“短板”,是你?还是他?
    【管理心得之十三】真正步入轨道的管理,是单调无味的、是枯燥死板的
    【管理心得之十二】拿什么来拯救你我的“协力人员” (后篇)
    【管理心得之十一】拿什么来拯救你我的“协力人员” (前篇)
    【管理心得之十】你是信息的发送方,应尽的责任你做到了吗?
    【管理心得之九】奉劝那些把组织“玩弄于鼓掌之间”的OL们。(别让组织看见此篇)
    【管理心得之八】通过现象看本质,小王和小张谁更胜任?
  • 原文地址:https://www.cnblogs.com/rogerroddick/p/2979687.html
Copyright © 2011-2022 走看看