首页 > 解决方案 > 创建视图时如何执行 IF/ELSE 检查

问题描述

我正在编写一个脚本来创建一个视图,只有当视图不存在时。如果视图确实存在,我不想更改它或删除并重新创建它。下面的语法显然不完整,并且会产生错误,因为CREATE VIEW需要在自己的批处理中 - 但是构建我的用例的正确方法是什么?

IF OBJECT_ID('dbo.view_name') IS NULL 
BEGIN    
  CREATE VIEW [dbo].[view_name]
  AS
      SELECT ...;
END
ELSE
  ...

标签: sql-servertsqlsql-server-2016

解决方案


SQL Server 2016 具有CREATE OR ALTER.

CREATE OR ALTER VIEW vw_your_view 
AS 
SELECT 1 FROM your_Table
GO

如果您将其移至 SQL Server 2016 以下的环境,这将会崩溃。如果是这种情况,请使用您所拥有的并检查 obj ID。


推荐阅读