DDL-statement uitbreiding: `create if not exists en `drop if exists`

Go to English version

De nieuwe uitbreidingen van DDL-statement create if not exists en drop if exists` maken installatiescripts en sessiegebonden tijdelijke tabellen meer expressief en eenvoudiger in het gebruik.

Object aanmaken

De volgende opties waren beschikbaar om een tabel, procedure, functie of view aan te maken:

create [table|procedure|function|view] NAME

en

create or replace [table|procedure|function|view] NAME

Dit wordt uitgebreid met de syntax:

create [table|procedure|function|view] if not exists NAME

welke alleen een object aanmaakt als het niet al bestond.

Indien een applicatiemodule op Invantive Cloud database-inhoud moet cachen in een sessiespecifieke tijdelijke tabel, dan kan dit voortaan betrouwbaar met:

begin
   ...
  create table if not exists MyCache@InMemoryStorage
  as
  select *
  from   slow_table
  ;
  select ...
  into   ...
  from   MyCache@InMemoryStorage
  where  ...
  ;
  ...
end;

Object verwijderen

De enige variant om een tabel, procedure, functie of view te laten vallen was:

drop [table|procedure|function|view] NAME

Dit is uitgebreid met de syntax:

drop [table|procedure|function|view] if exists NAME

welke alleen het object verwijdert als het al bestond.

Een installatiescript kan nu het volgende statement gebruiken om een voorgaande versie van een tabel te verwijderen indien nog aanwezig:

drop table if exists MyObsoletedTable@SqlServer

Beschikbaarheid

Deze uitbreidingen op DDL-statements zijn beschikbaar vanaf 24.0.778 en 25.0.42.