首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Server存储过程不执行另一个SP

Server存储过程不执行另一个SP
EN

Stack Overflow用户
提问于 2013-10-30 09:37:08
回答 1查看 861关注 0票数 1

我有一个Server存储过程,但是当它执行时,它似乎没有执行我希望调用的其他存储过程。

下面是我的存储过程示例,您可以看到我的EXEC语句。

如果有人知道为什么这不起作用,那么请告诉我!谢谢

代码语言:javascript
复制
ALTER PROCEDURE [dbo].[AddField]
   @tablename nvarchar(20),
   @newfield nvarchar(20),
   @datatype nvarchar(20),
   @length nvarchar(20),
   @displayname nvarchar(20),
   @tableseq nvarchar(20),
   @varcharmax nvarchar(20),
   @SEQ_PARENT nvarchar(20),
   @FK_MODULE_VIEW nvarchar(20),
   @FK_MODULE_VAL nvarchar(20)
AS
BEGIN
    DECLARE @p_tablename varchar(20), 
        @type varchar(20), 
        @FK_SQL_DATA nvarchar(max), 
        @FK_TABLE_NAME varchar(20), 
        @ALTER_TABLE_SQL nvarchar(max),
        @ALTER_TABLE_SQL_ADD_FK nvarchar(max),
        @FIELD_REF_SQL_DATA nvarchar(max)

    SELECT @p_tablename = TABLENAME FROM SD_TABLES WHERE VIEWNAME = @tablename

    SET @type = @datatype + @length

    if @datatype = 'TEST1'
    BEGIN
    --SQL HERE
    END

    if @datatype = 'TEST2'
    BEGIN
    --SQL HERE      
    END

    if @datatype = 'TEST3'
    BEGIN
    --SQL HERE
    END

    EXEC SD_CreateAllViewStatements
END
EN

回答 1

Stack Overflow用户

发布于 2013-10-30 10:18:10

我可以想一想为什么会发生这种情况的两种情况:

  1. 主脚本在调用SD_CreateAllViewStatements之前崩溃。您可以添加简单的try ... catch结构以避免SP AddField崩溃。
  2. 您的if ... begin ... end blocks中有一个需要删除的if ... begin ... end blocks语句(或者SP AddField需要重新设计)

在这两种情况下,脚本基本上都不是执行对SD_CreateAllViewStatements的调用。在所有其他情况下,必须执行SP SD_CreateAllViewStatements

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19678605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档