在datetime数据类型列中创建自己的默认约束名称时显示错误

时间:2013-09-27 08:04:44

标签: tsql sybase-ase

CREATE TABLE [guest].[m_WORKING_HOUR_SETTING](
    [GROUP_ID] [int] NULL,
    [WORKING_START_HOUR] [varchar](10) NULL,
    [WORKING_END_HOUR] [varchar](50) NULL,
    [CREATED_TIME] [datetime] NULL CONSTRAINT [DF_WORKING_HOUR_SETTING_CREATED_TIME]  default (getutcdate()) ,
    [CREATED_BY] [int] NULL
) 

GO

当我为datetime数据类型列创建一个具有自己的默认约束名称的表时。它会在关键字default附近显示错误语法等错误。我试过自己,但我找不到错误。请帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

默认被认为是一个约束,我认为你不能为这样的列添加两个约束。

CREATE TABLE m_WORKING_HOUR_SETTING(
    GROUP_ID int NULL,
    WORKING_START_HOUR varchar(10) NULL,
    WORKING_END_HOUR varchar(30) NULL,
    CREATE_TIME datetime default getutcdate() NULL,
    CREATED_BY int NULL

如果要在该列上创建一个完成相同操作的命名约束,则可以创建没有默认/约束的表,然后创建一个命名默认值并将其绑定到列。

create default DF_WORKING_HOUR_SETTING_CREATED_TIME as getutcdate()

sp_bindefault DF_WORKING_HOUR_SETTING_CREATED_TIME, "guest.m_WORKING_HOUR_SETTING"

Sybase ASE Table Creation

Defining Integrity Constraints for Tables

Defaults and Null Values

Creating Defaults