【问题标题】:how to populate date from table1 to table2?如何将日期从 table1 填充到 table2?
【发布时间】:2012-08-23 21:09:47
【问题描述】:

我正在尝试将记录从 table1 填充到 table2。 table1 有三列,没有主键。 Table2 具有三个相同的列,其中一个标识列作为主键。以下是我的查询和定义。但不知何故,我得到了一个错误,无法将值 NULL 插入列 'notes_id',表 'table1;列不允许空值。插入失败。 该语句已终止。 我错过了什么?

CREATE TABLE [dbo].[table1](
    [notes_id] [int] NOT NULL,
    [acty_id] [varchar](80) NOT NULL,
    [notes_datetime] [datetime] NOT NULL,
    [notes_data] [nvarchar](max) NULL,
 CONSTRAINT [PK_tblSRMNotes] PRIMARY KEY CLUSTERED 
(
    [notes_id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

CREATE TABLE [dbo].[table2](
    [acty_id] [varchar](80) NOT NULL,
    [notes_datetime] [datetime] NOT NULL,
    [notes_data] [nvarchar](max) NULL
) ON [PRIMARY]

insert into table1(acty_id, notes_datetime, notes_data)
    select s.acty_id, s.notes_datetime, s.notes_data
    from table2 s 

【问题讨论】:

    标签: sql-server-2008 insert identity-column


    【解决方案1】:

    您已将第一列设置为 NOT NULL,并将其声明为 PRIMARY KEY,但您尚未指明应如何填充它。通常这是通过 IDENTITY 列:

    CREATE TABLE [dbo].[table1]
    (
        [notes_id] [int] IDENTITY(1,1) NOT NULL,
    ---------------------^^^^^^^^^^^^^
        [acty_id] [varchar](80) NOT NULL,
        [notes_datetime] [datetime] NOT NULL,
        [notes_data] [nvarchar](max) NULL,
        CONSTRAINT [PK_tblSRMNotes] PRIMARY KEY CLUSTERED (notes_id)
    );
    

    【讨论】:

    • 谢谢。我忘记设置身份了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-08
    • 2018-02-28
    • 2014-02-10
    • 1970-01-01
    • 2020-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多