Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Drop table only if it exists

Hello experts,

In a .qvw I created a QV table inside a condition statement.

Opening binary the above one in another .qvw file, I need to check if the QV table has been created.

Is there a way to check if a QV table exists before calling a drop table statement ?

Thanks in advance.

Best regards

7 Replies
Miguel_Angel_Baeyens

Hello,

There is a system field called $Table which stores all actually loaded tables, so checking this field (with peek(), for exmple) for that table value should work for you.

Hope that helps.

lblancher
Partner - Contributor III
Partner - Contributor III

Hi,

If the table has a key column, you can do something like.


LET IsFieldAvailable = peek('keyColumn');
IF IsFieldAvailable THEN
DROP TABLE myTable;
END IF;


Lucas Blancher

BizXcel Inc.

Not applicable
Author

Hi

The following should work:

if noOfRows('tablename') > 0 then
drop table tablename;
end if

regards
/Fredrik

disqr_rm
Partner - Specialist III
Partner - Specialist III

Other way is to set the errormode variable appropriately so in case of error, it skips it and not terminate. Something like:

Set ErrorMode = 0; //Set it to skip error

DROP Table xyz;

Set ErrorMode = 1; //Set it back to standard

Miguel_Angel_Baeyens

Here you are another one, maybe more practical, using system function TableName()

If (len(TableName('YourTable')) > 0) Then Drop Table YourTable; End If


Anonymous
Not applicable
Author

great solution but small correction:

If (len(TableNumber('YourTable')) > 0) Then Drop Table YourTable; End If

janderooij
Partner - Contributor III
Partner - Contributor III

Hello , 

The solution set errormode = 0 worked for me!

Other solutions fail because the table can't be checked on rows etc while it is simply not existing! 

Thanks!