sql-server - 创建视图时如何执行 IF/ELSE 检查
问题描述
我正在编写一个脚本来创建一个视图,只有当视图不存在时。如果视图确实存在,我不想更改它或删除并重新创建它。下面的语法显然不完整,并且会产生错误,因为CREATE VIEW
需要在自己的批处理中 - 但是构建我的用例的正确方法是什么?
IF OBJECT_ID('dbo.view_name') IS NULL
BEGIN
CREATE VIEW [dbo].[view_name]
AS
SELECT ...;
END
ELSE
...
解决方案
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。
推荐阅读
- html - HTML不会从scss SASS中获取margin-bottom
- palantir-foundry - 如何分配热键以触发 Slate 中的事件
- sql-server - SQL Server XML 架构验证;无效内容错误;期望将次要事件设置为 0 的元素?
- c# - 无法让包装器 binance.net 正常工作
- snowflake-cloud-data-platform - 雪花配置文件不匹配解释
- r - 无法在“网状”中使用“熊猫”模块
- javascript - Strava API 授权
- python - 为什么我不能使用 ALAnimationSpeech API 让 Nao 做特定的手势,比如 ^start()
- c# - 设备无关绘图
- rust - 如何使任何类型的parms生锈