261 votes

CREATE TABLE IF NOT EXISTS équivalent en SQL Server

CREATE TABLE IF NOT EXISTS fonctionne sur mysql mais échoue avec SQL Server 2008 R2. Quelle est la syntaxe équivalente ?

1 votes

14 votes

En fait, il ne s'agit pas d'un doublon de la question marquée. Cette question demande comment le créer s'il n'existe pas encore. GO après avoir créé, nous ne pouvons pas mettre la commande create à l'intérieur de BEGIN y END bloc, comme le suggère la réponse à l'autre question.

2 votes

@JNK, lorsque vous marquiez cette question comme basique, votre lien aurait pu être en tête des résultats de recherche. Cependant, à cette date, cette question est en tête des recherches Google.

279voto

Neil Knight Points 23759
if not exists (select * from sysobjects where name='cars' and xtype='U')
    create table cars (
        Name varchar(64) not null
    )
go

Ce qui précède va créer une table appelée cars si la table n'existe pas déjà.

51 votes

Mieux encore, utilisez la fonction spécifique sys.tables catalogue au lieu d'avoir à se souvenir de ce qui est obscur. xtype une table est...

5 votes

@marc_s : Oui. Un autre bon moyen :o) En fait, probablement un meilleur moyen.

80 votes

Puisque c'est la première question pour ce sujet dans Google, même s'il a été fermé : if not exists (select * from sys.tables t join sys.schemas s on (t.schema_id = s.schema_id) where s.name = 'myschema' and t.name = 'cars') create table myschema.cars ( Name varchar(64) not null )

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X