检查表是否存在于 sql db你好,
我在不同的 SQL DB 上运行一些 jmpquery。 因为某些数据库没有相同的表,所以我收到错误:
SQL 查询中引用的表 (public.table1(t1)) 在访问或评估“表”、表(“table1”、架构(“public”)、别名(“t1”)时未在数据库中找到{1} ) ) /*###*/
在运行查询之前如何检查 SQL DB 上是否存在表?
谢谢
杰夫
脚本Re: 检查 sql db 上是否存在表如果这是 SQL Server,这样的东西(未经测试)应该可以工作:
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: 检查 sql db 上是否存在表argument = N Rows(dt);
返回表的行数。 如果没有行,则表不存在
Re: 检查 sql db 上是否存在表它返回一个表,如何获取参数?布尔值?
Re: 检查 sql db 上是否存在表我发现使用下面的自定义 SQL,如果存在,它会返回 0 或 1。
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;