简体   繁体   English

如何在hana SQL查询中执行IF EXISTS

[英]How to do an IF EXISTS in hana SQL query

I have this query code:我有这个查询代码:

IF EXISTS  ( 

SELECT 

 *

 FROM sys.objects

 WHERE object_id =
 OBJECT_ID(N'[dbo].[BAL_WMS_STAGING]') 

 AND type in (N'U')

)

 DROP TABLE
 [dbo].[BAL_WMS_STAGING] 

GO 
 CREATE TABLE

I am trying to use this statement to query an SAP Hana Database.我正在尝试使用此语句来查询 SAP Hana 数据库。 The beginning of the query IF EXISTS keeps throwing an error, I assume that this means that this keyword does not exist in Hana SQL syntax.开始查询IF EXISTS一直报错,我假设这意味着这个关键字在Hana SQL语法中不存在。 Does anyone know how to do an IF EXISTS check in Hana, as I am unable to find any answer online.有谁知道如何在 Hana 中进行IF EXISTS检查,因为我无法在网上找到任何答案。

If EXISTS is a non-standard syntax that HANA doesn't support.如果 EXISTS 是 HANA 不支持的非标准语法。 As an alternative you can query the catalog and write a IF...THEN statement in SQLScript.作为替代方案,您可以查询目录并在 SQLScript 中编写IF...THEN语句。

An alternative to using IF EXISTS could be something like this:使用 IF EXISTS 的替代方法可能是这样的:

SELECT *
FROM sys.objects
WHERE object_id = (
    CASE
    WHEN EXISTS (
        SELECT object_id
        FROM sys.objects
        WHERE object_id = OBJECT_ID(N'[dbo].[BAL_WMS_STAGING]')
        AND type IN (N'U'))
    THEN (
        SELECT object_id
        FROM sys.objects
        WHERE object_id = OBJECT_ID(N'[dbo].[BAL_WMS_STAGING]')
        AND type IN (N'U'))
    ELSE
        NULL
    END
)
AND type IN (N'U')

SQLScript does not have IF EXIST condition. SQLScript 没有 IF EXIST 条件。 But same logic can be achieved by creating a variable (flag) that is initialized by your first query.但是可以通过创建一个由您的第一个查询初始化的变量(标志)来实现相同的逻辑。 You dont need to select all the columns.您不需要选择所有列。 You can select as an example object_id.您可以选择 object_id 作为示例。

flag = '';

SELECT object_id INTO flag FROM sys.objects
 WHERE object_id =
 OBJECT_ID(N'[dbo].[BAL_WMS_STAGING]') 
 AND type in (N'U');

IF flag != '' THEN
  DROP TABLE [dbo].[BAL_WMS_STAGING]
END IF;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM