Comment puis-je conditionnellement créer une table dans Sybase (TSQL)?

OK, donc Sybase (12.5.4) me permettra de faire ce qui suit pour supprimer une table si elle existe déjà:

IF EXISTS (
    SELECT 1
    FROM sysobjects
    WHERE name = 'a_table'
    AND type = 'U'
)
DROP TABLE a_table
GO

Mais si j'essaie de faire la même chose avec la création de la table, j'ai toujours averti que la table existe déjà, parce qu'il est allé de l'avant et a essayé de créer ma table et ignoré l'instruction conditionnelle. Juste essayez d'exécuter l'instruction suivante deux fois, vous verrez ce que je veux dire:

IF NOT EXISTS (
    SELECT 1
    FROM sysobjects
    WHERE name = 'a_table'
    AND type = 'U'
)
CREATE TABLE a_table (
    col1 int not null,
    col2 int null
)
GO

L'exécution de la ci-dessus génère l'erreur suivante:

Des Erreurs de SQL Server (localhost)
Erreur:2714 à la Ligne:7 Message:Il y a
déjà un objet nommé "a_table" dans
la base de données.

Quel est le problème avec ça?!

Qu'est-ce downvoting réponses? Et puis attribuez-vous l'acceptation? Pour un non-réponse?
J'ai downvoted des réponses qui ne sont pas aider à répondre à la question, c'est le but de downvoting. J'ai upvoted réponses qui ont aidé et ont été viable, mais à la fin la seule solution qui a fonctionné pour moi, c'était mon propre. Je n'ai pas rep pour répondre à ma propre question, il n'est donc pas à mon avantage.
Juste assez. Je vais vous rappeler de ne pas répondre si je suis certaine que votre question est traitée par ma réponse. Dans ce cas, il n'y avait pas suffisamment d'informations pour savoir, si je perdais mon temps.
OK, je peux voir d'où vous venez, vous avez investi beaucoup de temps à essayer de résoudre ma question, je dois vous remercier pour ne pas vous pénaliser. Tandis que les autres downvoted réponses étaient tout simplement incorrect, la vôtre était plus considéré comme - j'avoue que j'ai été trop vite en besogne dans downvoting. Toutes mes excuses, j'ai révoqué le -1.

OriginalL'auteur ninesided | 2008-11-21