OVH Cloud OVH Cloud

Impossible de supprimer une table SQL

4 réponses
Avatar
Yann47
Je cré des table SQL Serveur 2000 qui portent des noms de date par ex.
4-04-2005,5-04-2005.
Je peux les créer par programmation en VBA Access en mettant le nom entre
crochets.
CmdSql.CommandText="CREATE TABLE [4-04-2005] (Champ1 Type..........)
Par contre je ne peux pas les supprimer.
Cat.Tables.Delete "4-04-2005"
J'ai un message d'erreur : Le Tableau n'existe pas.

Merci de l'aide

4 réponses

Avatar
Laurent MOREAU
CmdSql.CommandText="DROP TABLE [4-04-2005]"

Laurent.



"Yann47" wrote in message
news:
Je cré des table SQL Serveur 2000 qui portent des noms de date par ex.
4-04-2005,5-04-2005.
Je peux les créer par programmation en VBA Access en mettant le nom entre
crochets.
CmdSql.CommandText="CREATE TABLE [4-04-2005] (Champ1 Type..........)
Par contre je ne peux pas les supprimer.
Cat.Tables.Delete "4-04-2005"
J'ai un message d'erreur : Le Tableau n'existe pas.

Merci de l'aide


Avatar
Yann47
"Laurent MOREAU" wrote:

CmdSql.CommandText="DROP TABLE [4-04-2005]"

Laurent.

merci, c'est OK.


Je me suis fait piégé par la Documentation en ligne SQL qui donne l'exemple
suivant :
L'exemple suivant supprime la table titles1 ainsi que ses données et ses
index de la base de données courante.

DROP TABLE titles1



"Yann47" wrote in message
news:
> Je cré des table SQL Serveur 2000 qui portent des noms de date par ex.
> 4-04-2005,5-04-2005.
> Je peux les créer par programmation en VBA Access en mettant le nom entre
> crochets.
> CmdSql.CommandText="CREATE TABLE [4-04-2005] (Champ1 Type..........)
> Par contre je ne peux pas les supprimer.
> Cat.Tables.Delete "4-04-2005"
> J'ai un message d'erreur : Le Tableau n'existe pas.
>
> Merci de l'aide





Avatar
Fred BROUARD
Il n'est pas recommandé (et c'est même interdit dans la norme SQL) de commencer
le nom d'une table par un chiffre. De mème tous les caractères diacritiques et
signe typographique sauf le blanc souligné sont interdit.
A ce sujet SQL Server est permissif, mais c'est souvent sources de problèmes
complexes.

De plus la norme SQL ne reconnait pas l'utilisation crochet pour les noms
d'objet, mais seul les apostrophes et uniquement dans le cas ou le nom de
l'objet est un mot réservé de SQL. Exemple :

CREATE TABLE "TABLE"


Dans ton cas il aurait mieux valu mettre un nom du genre :

CREATE TABLE T_2005-04-04 ...


A lire : http://sqlpro.developpez.com/cours/sqlaz/erreurs/#L1
http://sqlpro.developpez.com/cours/sqlaz/ddl/?page=partie1#L1

A +

Yann47 a écrit:
Je cré des table SQL Serveur 2000 qui portent des noms de date par ex.
4-04-2005,5-04-2005.
Je peux les créer par programmation en VBA Access en mettant le nom entre
crochets.
CmdSql.CommandText="CREATE TABLE [4-04-2005] (Champ1 Type..........)
Par contre je ne peux pas les supprimer.
Cat.Tables.Delete "4-04-2005"
J'ai un message d'erreur : Le Tableau n'existe pas.

Merci de l'aide



--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************
Avatar
Patrice
Et si dans le delete le nom est également mis entre crochets ?

Patrice

--

"Yann47" a écrit dans le message de
news:
Je cré des table SQL Serveur 2000 qui portent des noms de date par ex.
4-04-2005,5-04-2005.
Je peux les créer par programmation en VBA Access en mettant le nom entre
crochets.
CmdSql.CommandText="CREATE TABLE [4-04-2005] (Champ1 Type..........)
Par contre je ne peux pas les supprimer.
Cat.Tables.Delete "4-04-2005"
J'ai un message d'erreur : Le Tableau n'existe pas.

Merci de l'aide