不要说用exec的动态语句啊。这个我是知道的,但是我的视图有可能很长,后期维护很不方便,所以不能用exec来执行创建视图

解决方案 »

  1.   

    你可以在create view前加一个go就可以了。
      

  2.   

    哦,要放到begin end中?这个估计不行。你可以把你的视图做成一个脚本,然后更新的时候,根据你的版本号,使用扩展存储过程去执行你的sql脚本
      

  3.   

    这样是不行的。就算我不用begin...end,也是不能的。
    我是要更新非常多的视图,所以弄成扩展存储过程也是不行的。用set noexec去控制也不行,因为这些视图的脚本是要和其它脚本放在一起给客户升级的
      

  4.   

    你试过吗?我试过了,不行的这个说错了,没看清你要放到begin end中。
      

  5.   

    你试过吗?我试过了,不行的这个说错了,没看清你要放到begin end中。
    嗯,刚才我没看到你后面说的所以回了这句。不过就算不放begin...end里面,前面加个go也是不行的
      

  6.   

    就用set noexec off,先在这个视图文件开始前这样操作一下,然后在判断版本的地方如果不需要更新就执行set noexec on ,然后在视图结束的时候再set noexec off一下就解决了