2016-01-11 101 views
1

我们需要创建一个script这将insert只有新近createdofficesdistricts纳入Data table。我们需要检查OfficeDistricttables新的Records,如果数据存在,我们需要insert他们。如何在sql服务器中使用带有OR子句的IF EXISTS语句

我们已经尝试了下面的语法为此,

IF EXISTS (
    SELECT 1 
    FROM [dbo].[office] o 
    LEFT OUTER JOIN [dbo].[Datatable] a ON (o.OfficeID = a.OfficeID) 
    WHERE a.OfficeID IS NULL 
) 
OR (
IF EXISTS (
    SELECT 1 
    FROM [dbo].[District] o 
    LEFT OUTER JOIN [dbo].[Datatable] a ON (o.DistrictID = DistrictID) 
    WHERE a.DistrictID IS NULL 
) 
) 
BEGIN 
    -- //CODE 
END 

但SSMS给syntax error这一点。如何实现上述场景?

回答

6

应该... OR EXISTS(而不是OR (if EXISTS(

IF EXISTS 
(
    SELECT 1 
    FROM [dbo].[office] o 
    LEFT OUTER JOIN [dbo].[Datatable] a 
     ON (o.OfficeID = a.OfficeID) 
    WHERE a.OfficeID IS NULL 
) 
OR EXISTS 
(
    SELECT 1 
    FROM [dbo].[District] o 
    LEFT OUTER JOIN [dbo].[Datatable] a 
     ON (o.DistrictID = DistrictID) 
    WHERE a.DistrictID IS NULL 
) 
BEGIN 
    //CODE 
END