0

table1からtable2にレコードを入力しようとしています。table1には3つの列があり、主キーはありません。表2には、主キーとしてID列を持つ3つの同じ列があります。以下は私の質問と定義です。しかし、どういうわけかエラーが発生しました。値NULLを列'notes_id'、テーブル'table1に挿入できません。列はnullを許可しません。INSERTは失敗します。ステートメントは終了されました。何が恋しいですか?

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 
4

1 に答える 1

2

最初の列を 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)
);
于 2012-08-23T21:12:44.733 に答える