SQL错误:“语法不正确”

时间:2015-02-09 15:25:29

标签: sql-server-2008

我有一个连接到SQL Server 2008的数据库,打印数据库时出错:打印中止!错误37000(用于ODBC驱动程序的Microsoft OLE DB提供程序) - [Microsoft] [ODBC SQL Server驱动程序] [SQL Server] [语法附近' TEMP_TAB_SHEET_U17'

详情脚本如下:

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [data].[TEMP_TAB_SHEET_U17](
    [TAL] [varchar](30) NULL,
    [Phase] [smallint] NOT NULL,
    [SHT] [varchar](30) NULL,
    [PreferedSYS] [varchar](30) NULL,
    [sysdesc] [varchar](100) NULL,
    [EquipmentNumber] [varchar](30) NULL,
    [TaskNumber] [varchar](30) NULL,
    [TaskId] [int] NULL,
    [OTdescription] [varchar](50) NULL,
    [OTremark] [varchar](50) NULL,
    [Estimated_Man_Hours] [float] NULL,
    [EquipmentId] [int] NULL,
    [EquipmentDescription] [varchar](50) NULL,
    [TAA_ID] [int] NULL,
    [UserGroup] [varchar](30) NULL,
    [MODULE] [varchar](30) NULL,
    [ModuleDesc] [varchar](50) NULL,
    [SHTTitle1] [varchar](50) NULL,
    [SHTTitle2] [varchar](50) NULL,
    [SHTTitle3] [varchar](50) NULL,
    [SHTTitle4] [varchar](50) NULL,
    [SHTDescription] [varchar](50) NULL,
    [SHTNbSections] [int] NULL,
    [NbMaxTasksPerSheet] [int] NULL,
    [S1_PH] [varchar](30) NULL,
    [S1_M] [varchar](30) NULL,
    [S1_PF] [varchar](30) NULL,
    [S2_PH] [varchar](30) NULL,
    [S2_M] [varchar](30) NULL,
    [S2_PF] [varchar](30) NULL,
    [S3_PH] [varchar](30) NULL,
    [S3_M] [varchar](30) NULL,
    [S3_PF] [varchar](30) NULL,
    [SHTFooterTitle1] [varchar](50) NULL,
    [SHTFooterTitle2] [varchar](50) NULL,
    [SHTFooterTitle3] [varchar](50) NULL,
    [SHTFooterTitle4] [varchar](50) NULL,
    [SHTFooterTitle5] [varchar](50) NULL,
    [SHTFooterTitle6] [varchar](50) NULL,
    [SHTFooterTitle7] [varchar](50) NULL,
    [SHTFooterTitle8] [varchar](50) NULL,
    [SHTFooterTitle9] [varchar](50) NULL,
    [SHTFooterTitle10] [varchar](50) NULL,
    [SHTFooterTitle11] [varchar](50) NULL,
    [SHTFooterTitle12] [varchar](50) NULL
) ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO

ALTER TABLE [data].[TEMP_TAB_SHEET_U17] ADD  DEFAULT ((0)) FOR [Phase]
GO

查询已完成运行并显示错误:

Msg 2714,Level 16,State 6,Line 2 已有一个名为' TEMP_TAB_SHEET_U17'在数据库中。 Msg 1781,Level 16,State 1,Line 2 列已经绑定了DEFAULT。 Msg 1750,Level 16,State 0,Line 2 无法创建约束。查看以前的错误。

如何解决这个问题。 提前谢谢。

阿万

1 个答案:

答案 0 :(得分:0)

您是否尝试在创建时设置约束:

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

    CREATE TABLE [data].[TEMP_TAB_SHEET_U17](
        [TAL] [varchar](30) NULL,
        [Phase] [smallint] NOT NULL DEFAULT 0,
        ...
        ....

    GO

    SET ANSI_PADDING OFF
    GO