考虑以下 SQL
SET DATEFORMAT ymd
SET ARITHABORT, ANSI_PADDING, ANSI_WARNINGS, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER, ANSI_NULLS, NOCOUNT ON
SET NUMERIC_ROUNDABORT, IMPLICIT_TRANSACTIONS, XACT_ABORT OFF
GO
USE master
GO
IF DB_NAME() <> N'master' SET NOEXEC ON
--
-- Create database [myDatabaseName]
--
PRINT (N'Create database [myDatabaseName]')
GO
CREATE DATABASE myDatabaseName
然后有一个很长的脚本来设置表、视图、存储过程等。
我想知道 SQL 是否允许以下伪代码之类的东西;
If (myDatabaseName Exists)
Return // in other word abort the script here but don't throw an error
Else
//Carry on and install the database
我知道 SQL 中的 Exists 函数,但我似乎找不到任何可以直接中止脚本剩余部分的东西。
该脚本将在安装例程中结束。从理论上讲,它永远不应该在数据库已经存在的安装程序中,但是我不希望冒险并为潜在的错误做好适当的准备。脚本不会抛出任何错误也很重要,因为这只会导致安装程序回滚并且什么都不安装。
我希望 SQL 中存在一些东西,如果满足特定条件,它就会干净地退出脚本。退出我的意思是退出,而不是简单地打破当前正在评估的条件。