'ON'附近的语法不正确

时间:2013-11-19 09:30:59

标签: sql-server tsql

IF ( NOT EXISTS (SELECT * 
                 FROM INFORMATION_SCHEMA.TABLES 
                 WHERE TABLE_SCHEMA = 'dbo' 
                 AND  TABLE_NAME = 'OeeQualityDefects'))

 BEGIN
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    CREATE TABLE [dbo].[OeeQualityDefects](
    [CharID] [int] NOT NULL,
    [QualityCharID] [int] NULL
    ) ON [PRIMARY]
END

这里我试图设置一个条件,如果表已经存在于数据库中,如果它不在那里我想创建一个表

但是,如果我运行此查询,我会收到错误

  

'ON'附近的语法不正确。

     

'END'附近的语法不正确。

1 个答案:

答案 0 :(得分:6)

将包含GO的语句放在IF语句

之前
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

IF ( NOT EXISTS (SELECT * 
             FROM INFORMATION_SCHEMA.TABLES 
             WHERE TABLE_SCHEMA = 'dbo' 
             AND  TABLE_NAME = 'OeeQualityDefects')) 
BEGIN    
    CREATE TABLE [dbo].[OeeQualityDefects]
    (
      [CharID] [int] NOT NULL,
      [QualityCharID] [int] NULL
    ) ON [PRIMARY]
END

GO结束语句,IF语句中断。