檢查表是否存在於 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;