sql中错误使用EXISTS语法

前段时间通过mybatis写sql,想实现EXISTS语法,一直报错,记录一下,以防以后范同样的错误,

错误语法类似如下:

INSERT INTO [dbo].[geo_asso_type]

([geo_asso_type_id]

,[bound_asso_type]

,[updated_date])

VALUES

(11

,'Province to City'

,GETDATE()

WHERE NOT EXISTS

(SELECT 1 FROM [dbo].[geo_asso_type] WHERE [geo_asso_type_id] = 11)

 

正确语法记录一下

第一种:前置not exists

IF NOT EXISTS (SELECT 1 FROM [dbo].[geo_asso_type] WHERE [geo_asso_type_id] = 11)  
BEGIN 
    INSERT INTO [dbo].[geo_asso_type]   
        ([geo_asso_type_id]  
        ,[bound_asso_type]  
        ,[updated_date])  
    VALUES 
        (11  
        ,'Province to City' 
        ,GETDATE())  
 
END

 

第二种:通过select的方式插入数据

INSERT INTO [dbo].[geo_asso_type]         
(     
[geo_asso_type_id],        
[bound_asso_type],     
[updated_date]     
)        
SELECT    
     11,     
     'Province to City',     
     GETDATE()     
WHERE NOT EXISTS(     
    SELECT 1   
    FROM [dbo].[geo_asso_type]   
    WHERE [geo_asso_type_id] = 11  
)

 

上一篇:查询A表数据插入到B表中 sql


下一篇:傲鹏ERP系统的一个BUG修正