Vérifier si la table existe sur sql dbBonjour,
J'exécute un jmpquery sur différentes bases de données SQL. Comme certaines bases de données n'ont pas les mêmes tables, j'obtiens l'erreur :
Les tables (public.table1(t1)) référencées dans la requête SQL n'ont pas été trouvées dans la base de données{1} lors de l'accès ou de l'évaluation de 'Table' , Table( "table1", Schema( "public" ), Alias( "t1" ) ) /*###*/
Comment puis-je vérifier si une table existe sur une base de données SQL avant d'exécuter une requête ?
Merci
Géof
ScriptRe : Vérifier si la table existe sur sql dbS'il s'agit de SQL Server, quelque chose comme ceci (non testé) devrait fonctionner :
Names Default To Here( 1 );
schema_name = "PUBLIC";
table_name = "TABLE1";
sql = evalinsert(
"SELECT COUNT(*) N
FROM information_schema.tables
WHERE table_schema = '^schema_name^'
AND table_name = '^table_name^'");
dbc = create database connection("ODBC:DSN=xxxx");
dt = execute sql(dbc, sql, invisible);
close database connection(dbc);
ntables = dt:N[1];
if (ntables,
print("Table " || table_name || " exists");
,
print("Table " || table_name || " does not exist");
);<BR />close(dt, nosave);<BR />Re : Vérifier si la table existe sur sql dbargument = N Rows(dt);
renvoie le nombre de lignes du tableau. S'il n'y a pas de ligne, la table n'y était pas
Re : Vérifier si la table existe sur sql dbil renvoie une table, comment obtenir un argument? booléen ?
Re : Vérifier si la table existe sur sql dbJ'ai trouvé en utilisant le SQL personnalisé ci-dessous, il renvoie 0 ou 1 s'il existe.
Names Default To Here( 1 );
obj = New SQL Query(
Connection( "ODBC:DSN=xxxx" ),
Custom SQL(
"SELECT EXISTS (
SELECT FROM information_schema.tables
WHERE table_schema = 'public'
AND table_name = 'table1'
);"
)
);
obj << run;