Vérifiez si Exisits Table Temporelle

J'ai créé une table temporaire, comment puis-je vérifier avec un script qu'il a été ajouté. Donc j'essaye de créer un script, pour créer la table temporelle si elle n'a pas déjà été créée. Le si ne fonctionne pas

IF (OBJECT_ID('[dbo].[CarHistory]') IS NULL) BEGIN Print 'Add Temporal table to Car table' Alter table Car ADD SysStartTime DATETIME2 GENERATED ALWAYS AS ROW START HIDDEN DEFAULT GETUTCDATE(), SysEndTime DATETIME2 GENERATED ALWAYS AS ROW END HIDDEN DEFAULT CONVERT(DATETIME2, '9999-12-31 23:59:59.9999999'), PERIOD FOR SYSTEM_TIME (StartTime, EndTime) ALTER TABLE dbo.Car SET (SYSTEM_VERSIONING = ON (HISTORY_TABLE=dbo.CarHistory)); END 

Mais je reçois cette erreur Msg 13597, niveau 16, état 2, ligne 16 Période SYSTEM_TIME temporaire est déjà définie sur la table 'dbo.Car' parce que je l'ai déjà ajouté.

Le moyen le plus simple serait d'utiliser temporal_type colonne temporal_type dans sys.tables .

Voici les valeurs totales

colonne temporal_type:

0 = NON_TEMPORAL_TABLE
1 = HISTORY_TABLE
2 = SYSTEM_VERSIONED_TEMPORAL_TABLE

vous pouvez utiliser quelque chose comme ci-dessous:

 IF EXISTS (SELECT * FROM sys.table WHERE name = 'Car' AND temporal_type = 2) BEGIN ... END