Überprüfen Sie, ob die Tabelle in der SQL-Datenbank vorhanden istHallo,
Ich führe einige jmpquery auf einer anderen SQL-Datenbank aus. Da einige DBs nicht die gleichen Tabellen haben, erhalte ich den Fehler:
Tabellen (public.table1(t1)), auf die in der SQL-Abfrage verwiesen wird, wurden in der Datenbank nicht gefunden{1} beim Zugriff oder bei der Auswertung von 'Table' , Table( "table1", Schema( "public" ), Alias( "t1" ) ) /*##****/
Wie kann ich überprüfen, ob eine Tabelle in einer SQL-Datenbank vorhanden ist, bevor ich eine Abfrage ausführe?
Vielen Dank
Geof
SkripterstellungBetreff: Überprüfen Sie, ob die Tabelle in der SQL-Datenbank vorhanden istWenn dies SQL Server ist, sollte so etwas (ungetestet) funktionieren:
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 />Betreff: Überprüfen Sie, ob die Tabelle in der SQL-Datenbank vorhanden istargument = N Rows(dt);
gibt die Anzahl der Zeilen der Tabelle zurück. Wenn keine Zeile vorhanden ist, war die Tabelle nicht vorhanden
Betreff: Überprüfen Sie, ob die Tabelle in der SQL-Datenbank vorhanden istes gibt eine Tabelle zurück, wie bekomme ich ein Argument? boolesch ?
Betreff: Überprüfen Sie, ob die Tabelle in der SQL-Datenbank vorhanden istIch habe festgestellt, dass die Verwendung des benutzerdefinierten SQL unten 0 oder 1 zurückgibt, falls vorhanden.
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;