根据版本号进行视图的创建更新问题

winstonbonaparte 2014-06-24 10:27:29
我要根据一个版本(我自定义的),然后根据这个版本号进去去判断要不要对某个视图进行创建更新。
因为在升级脚本时,对视图都是先删除再创建的。但create view必须是批处理的第一条语句,所以我根本没办法把create view放在
begin...end里面。那有没有其它方法来实现先判断版本再决定是否创建更新视图呢?
...全文
152 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
winstonbonaparte 2014-06-24
  • 打赏
  • 举报
回复
引用 6 楼 HEROWANG 的回复:
[quote=引用 4 楼 winstonbonaparte 的回复:] [quote=引用 2 楼 HEROWANG 的回复:] 你可以在create view前加一个go就可以了。
你试过吗?我试过了,不行的[/quote] 这个说错了,没看清你要放到begin end中。[/quote] 嗯,刚才我没看到你后面说的所以回了这句。不过就算不放begin...end里面,前面加个go也是不行的
  • 打赏
  • 举报
回复
引用 4 楼 winstonbonaparte 的回复:
[quote=引用 2 楼 HEROWANG 的回复:] 你可以在create view前加一个go就可以了。
你试过吗?我试过了,不行的[/quote] 这个说错了,没看清你要放到begin end中。
winstonbonaparte 2014-06-24
  • 打赏
  • 举报
回复
引用 3 楼 HEROWANG 的回复:
哦,要放到begin end中?这个估计不行。你可以把你的视图做成一个脚本,然后更新的时候,根据你的版本号,使用扩展存储过程去执行你的sql脚本
这样是不行的。就算我不用begin...end,也是不能的。 我是要更新非常多的视图,所以弄成扩展存储过程也是不行的。用set noexec去控制也不行,因为这些视图的脚本是要和其它脚本放在一起给客户升级的
winstonbonaparte 2014-06-24
  • 打赏
  • 举报
回复
引用 2 楼 HEROWANG 的回复:
你可以在create view前加一个go就可以了。
你试过吗?我试过了,不行的
  • 打赏
  • 举报
回复
哦,要放到begin end中?这个估计不行。你可以把你的视图做成一个脚本,然后更新的时候,根据你的版本号,使用扩展存储过程去执行你的sql脚本
  • 打赏
  • 举报
回复
你可以在create view前加一个go就可以了。
winstonbonaparte 2014-06-24
  • 打赏
  • 举报
回复
不要说用exec的动态语句啊。这个我是知道的,但是我的视图有可能很长,后期维护很不方便,所以不能用exec来执行创建视图
z184931481 2014-06-24
  • 打赏
  • 举报
回复
就用set noexec off,先在这个视图文件开始前这样操作一下,然后在判断版本的地方如果不需要更新就执行set noexec on ,然后在视图结束的时候再set noexec off一下就解决了

22,302

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧