代码之家  ›  专栏  ›  技术社区  ›  Glenn Slaven

如何在部署脚本的事务中包含alter view语句?

  •  4
  • Glenn Slaven  · 技术社区  · 14 年前

    我正在prod上运行SQLServer2005,但在2008年开发,我需要更改视图以添加列。但是,我在创建部署脚本时遇到问题,因为我需要将它包装在这样的事务中

    begin tran;
    
    alter view [dbo].[v_ViewName] with schemabinding
    as 
        select ... 
    
        /* do other stuff */
    commit;
    

    当我这样做时,SQLIDE在alter语句下面加上一个错误,即“alter view”语句必须是批处理中唯一的语句。如果我忽略了这个,然后尝试运行它,它就会产生这个错误:

    关键字“view”附近有语法错误。

    有什么解决办法吗?

    1 回复  |  直到 14 年前
        1
  •  10
  •   Remus Rusanu    14 年前

    一个事务可以跨多个批处理:

    begin tran;
    GO
    
    alter view [dbo].[v_ViewName] 
    with schemabinding
    as         
      select ...     
    GO
    
    /* do other stuff */
    GO
    
    commit;
    GO