requete existence d'une table ou d'une colonne

Cette section est consacrée aux développements d'applications interfacées avec les logiciels Sage.

Modérateurs: Super-Apogea, Super Modérateur

requete existence d'une table ou d'une colonne

de othman3535 » Mer 8 Mai 2013 12:42

Bonjour,

Est-ce que je peux utiliser une requête qui test l’existence d'une table ou d'une colonne dans la base.
par exemple :
Code: Tout sélectionner
select * from sys.columns where name = 'CT_NUM'


Merci
Posteur néophyte
Posteur néophyte
 
Messages: 10
Inscription: Ven 25 Jan 2013 23:29

Re: requete existence d'une table ou d'une colonne

de asr31 » Ven 10 Mai 2013 13:13

Bonjour,

Oui, ta requête marche.
Tu peux même la compléter en donnant le nom de la table contenant ce champ :
Code: Tout sélectionner
SELECT     sys.tables.name AS Nom_Table, sys.columns.object_id, sys.columns.name
FROM         sys.columns INNER JOIN
                      sys.tables ON sys.columns.object_id = sys.tables.object_id
WHERE     (sys.columns.name = 'CT_NUM')

Cordialement,
ASR31

En recherche de missions.
Avatar de l’utilisateur
Super Contributeur
Super Contributeur
 
Messages: 2975
Inscription: Mer 13 Fév 2008 15:31
Localisation: TOULOUSE

Re: requete existence d'une table ou d'une colonne

de othman3535 » Lun 13 Mai 2013 15:58

Bonjour,

est-ce que ça marche avec sage 100 gestion commerciale, car ni la première requête ni la deuxième marche !!

Cordialement
Posteur néophyte
Posteur néophyte
 
Messages: 10
Inscription: Ven 25 Jan 2013 23:29

Re: requete existence d'une table ou d'une colonne

de OokieDookie » Lun 13 Mai 2013 16:04

Bonjour,

La base de données est-elle bien sélectionnée ?

Si oui, attention au classement de l'instance.

En standard c'est du French_CI_AS, donc la casse n'est pas importante.
Code: Tout sélectionner
USE BIJOU
GO

SELECT     sys.tables.name AS Nom_Table, sys.columns.object_id, sys.columns.name
FROM         sys.columns INNER JOIN
                      sys.tables ON sys.columns.object_id = sys.tables.object_id
WHERE     (sys.columns.name = 'CT_NUM')


En French_Bin cela donnera CT_Num au lieu de CT_NUM
Code: Tout sélectionner
USE BIJOU
GO

SELECT     sys.tables.name AS Nom_Table, sys.columns.object_id, sys.columns.name
FROM         sys.columns INNER JOIN
                      sys.tables ON sys.columns.object_id = sys.tables.object_id
WHERE     (sys.columns.name = 'CT_Num')


HTH,
"L'expérience est le nom que chacun donne à ses erreurs." (O. Wilde)
Qualité et précision de la question conditionnent celles de la réponse. :roll:
Et si on gagnait TOUS du temps ? Menu "?", A propos de :wink:
Avatar de l’utilisateur
Super Contributeur
Super Contributeur
 
Messages: 1481
Inscription: Jeu 14 Fév 2008 13:50
Localisation: Paris

Re: requete existence d'une table ou d'une colonne

de asr31 » Mar 14 Mai 2013 14:33

Bonjour,

En effet, il faut lancer la requête sur la base concernée (@OD : pour toi, la requête fonctionne ?)
Et, il me semble que la base SAGE n'aime pas trop les classements autres que French_CI_AS ....

Cdt,
ASR31

En recherche de missions.
Avatar de l’utilisateur
Super Contributeur
Super Contributeur
 
Messages: 2975
Inscription: Mer 13 Fév 2008 15:31
Localisation: TOULOUSE

Re: requete existence d'une table ou d'une colonne

de othman3535 » Mar 14 Mai 2013 17:59

Bonjour,

je sais pas !!! mais ça ne marche pas !!! :(
il me donne : Erreur Syntaxe (voir l'image attachée)

Cordialement
Posteur néophyte
Posteur néophyte
 
Messages: 10
Inscription: Ven 25 Jan 2013 23:29

Re: requete existence d'une table ou d'une colonne

de OokieDookie » Mer 15 Mai 2013 16:07

Regarder du côté de la version SQL Server
Les magnifiques points d'interrogation au milieu du script ne laissent rien présager de bon, et ça doit être du tonneau :
"En 2000 c'est sys.tables et en 2008 c'est sys.systables".

Je n'utilise pas Query, mais on peut toujours tester s'il accepte les alias de table :
Code: Tout sélectionner
SELECT     T.name AS Nom_Table, C.object_id, C.name
FROM         sys.columns C INNER JOIN
                      sys.tables T ON C.object_id = T.object_id
WHERE     (C.name = 'CT_Num')


Sinon c'est vrai que j'utilise plutôt INFORMATION_SCHEMA pour cela (j'ai appris comme ça), peut être une piste ?
sys.columns => INFORMATION_SCHEMA.COLUMNS
sys.tables => INFORMATION_SCHEMA.TABLES

HTH,
"L'expérience est le nom que chacun donne à ses erreurs." (O. Wilde)
Qualité et précision de la question conditionnent celles de la réponse. :roll:
Et si on gagnait TOUS du temps ? Menu "?", A propos de :wink:
Avatar de l’utilisateur
Super Contributeur
Super Contributeur
 
Messages: 1481
Inscription: Jeu 14 Fév 2008 13:50
Localisation: Paris

Re: requete existence d'une table ou d'une colonne

de asr31 » Mer 15 Mai 2013 19:08

Bonjour,

Juste une question :
Tu passes par l'ODBC SAGE ou par un pilote ODBC SQL ?
L'ODBC SAGE ne donne accès qu'aux tables 'utilisateurs' (F_xxx ou P_xxx) mais pas aux tables systèmes.

Cdt
ASR31

En recherche de missions.
Avatar de l’utilisateur
Super Contributeur
Super Contributeur
 
Messages: 2975
Inscription: Mer 13 Fév 2008 15:31
Localisation: TOULOUSE

Re: requete existence d'une table ou d'une colonne

de othman3535 » Jeu 16 Mai 2013 10:04

Bonjour,

J'utilise sage gescom 100 + la base cbase + SAGE ODBC.

Cordialement
Posteur néophyte
Posteur néophyte
 
Messages: 10
Inscription: Ven 25 Jan 2013 23:29

Re: requete existence d'une table ou d'une colonne

de asr31 » Jeu 16 Mai 2013 20:52

Bonjour,

Je crois que c'est râpé en cBase ....

Cordialement,
ASR31

En recherche de missions.
Avatar de l’utilisateur
Super Contributeur
Super Contributeur
 
Messages: 2975
Inscription: Mer 13 Fév 2008 15:31
Localisation: TOULOUSE


Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité