[SQL] 왜 SQL 서버는이 오류를 던지고있다 : 열 'ID'에 NULL 값을 삽입 할 수 없습니다?
SQL왜 SQL 서버는이 오류를 던지고있다 : 열 'ID'에 NULL 값을 삽입 할 수 없습니다?
나는 다음과 같은 쿼리를 사용하고 있습니다 :
INSERT INTO role (name, created) VALUES ('Content Coordinator', GETDATE()), ('Content Viewer', GETDATE())
그러나, 나는 (ID입니다) 기본 키를 지정하고 있지 않다. 내 질문에 그럼, 왜 SQL Server는이 오류와 함께 다시오고있다 :
Msg 515, Level 16, State 2, Line 1
Cannot insert the value NULL into column 'id', table 'CMT_DEV.dbo.role'; column does not allow nulls. INSERT fails.
The statement has been terminated.
해결법
-
==============================
1.나는 ID가 증분 값하도록되어 있으리라 믿고있어.
나는 ID가 증분 값하도록되어 있으리라 믿고있어.
이 작업을 설정해야합니다, 그렇지 않으면 더 기본 값 nullable이 아닌 열이있는 경우가 더 가치를 제공하지 않는 경우,이 오류가됩니다.
SQL Server 관리 Studio에서 자동 증가를 설정하려면 :
-
==============================
2.사용 IDENTITY (1,1) 테이블을 만드는 동안 예를 들어,
사용 IDENTITY (1,1) 테이블을 만드는 동안 예를 들어,
CREATE TABLE SAMPLE( [Id] [int] IDENTITY(1,1) NOT NULL, [Status] [smallint] NOT NULL, CONSTRAINT [PK_SAMPLE] PRIMARY KEY CLUSTERED ( [Id] ASC ) )
-
==============================
3.ID 열에는 기본값이 없습니다 만, NOT NULL 제약 조건이있는 경우에, 당신은 가치를 직접 제공해야
ID 열에는 기본값이 없습니다 만, NOT NULL 제약 조건이있는 경우에, 당신은 가치를 직접 제공해야
INSERT INTO dbo.role (id, name, created) VALUES ('something', 'Content Coordinator', GETDATE()), ('Content Viewer', GETDATE())
-
==============================
4.당신은 ID에 대한 값을 제공하지 않았다. 이 시도 :
당신은 ID에 대한 값을 제공하지 않았다. 이 시도 :
INSERT INTO role (id, name, created) VALUES ('example1','Content Coordinator', GETDATE()), ('example2', 'Content Viewer', GETDATE())
자동으로 추가 된 id 값이 필요한 경우 아니면 id 필드에 자동 증가를 설정할 수 있습니다.
-
==============================
5.당신이 또는 ID의 자동 증가 속성을 설정하지 않으 수없는 경우,이 같은 각 행에 대한 ID에 대한 값을 설정할 수 있습니다 :
당신이 또는 ID의 자동 증가 속성을 설정하지 않으 수없는 경우,이 같은 각 행에 대한 ID에 대한 값을 설정할 수 있습니다 :
INSERT INTO role (id, name, created) SELECT (select max(id) from role) + ROW_NUMBER() OVER (ORDER BY name) , name , created FROM ( VALUES ('Content Coordinator', GETDATE()) , ('Content Viewer', GETDATE()) ) AS x(name, created)
-
==============================
6.나는 비슷한 문제를 가지고 있었고, 그것으로 찾고에, 그것은 실제 테이블에서 단순히 필드 ID를 누락했다 (ID 비어 / 널 (null)) - 당신이 기본 키가이 오류가 발생합니다 id 필드를 만들려고 할 때 의미 테이블 때문에 기본 키는 null 값을 가진 행을 포함합니다.
나는 비슷한 문제를 가지고 있었고, 그것으로 찾고에, 그것은 실제 테이블에서 단순히 필드 ID를 누락했다 (ID 비어 / 널 (null)) - 당신이 기본 키가이 오류가 발생합니다 id 필드를 만들려고 할 때 의미 테이블 때문에 기본 키는 null 값을 가진 행을 포함합니다.
-
==============================
7.당신도 필요가 삽입에 ID를 지정하거나 예 = 신원 사양을 가지고있는 데이터베이스의 ID 열을 구성해야합니다.
당신도 필요가 삽입에 ID를 지정하거나 예 = 신원 사양을 가지고있는 데이터베이스의 ID 열을 구성해야합니다.
-
==============================
8.ID가 PK이므로이 독특하고 있지 null이어야합니다. 이 필드 목록에서 모든 필드를 언급하지 않는 경우는 null 또는 디폴트 값으로 가정됩니다 삽입하십시오. 이 필드의 설정 정체성 (즉, 자동 증가는) 당신은 수동으로 실시 할 때마다 그것을 설정하지 않는 경우.
ID가 PK이므로이 독특하고 있지 null이어야합니다. 이 필드 목록에서 모든 필드를 언급하지 않는 경우는 null 또는 디폴트 값으로 가정됩니다 삽입하십시오. 이 필드의 설정 정체성 (즉, 자동 증가는) 당신은 수동으로 실시 할 때마다 그것을 설정하지 않는 경우.
-
==============================
9.테이블을 생성하거나이 작업을 수행하는 기존의 테이블을 변경할 수있는 경우는 true로 id 컬럼 세트 자동 증가 속성이 필요합니다.
테이블을 생성하거나이 작업을 수행하는 기존의 테이블을 변경할 수있는 경우는 true로 id 컬럼 세트 자동 증가 속성이 필요합니다.
-
==============================
10.@curt는 정확하지만 때로는이 NULL 오류를 허용 실패 것으로 나타났습니다, 간헐적 인 것 같다. 또한 NOT FOR REPLICATION으로 1 IDENTITY (1, 1)에 Indenty 시드를 설정하여, 항상 오류를 피했다.
@curt는 정확하지만 때로는이 NULL 오류를 허용 실패 것으로 나타났습니다, 간헐적 인 것 같다. 또한 NOT FOR REPLICATION으로 1 IDENTITY (1, 1)에 Indenty 시드를 설정하여, 항상 오류를 피했다.
-
==============================
11.나의 경우에는,
나의 경우에는,
내가 필요한 외부 키를 만들어 내 모델을 업데이트하려고했지만, 데이터베이스는 이미 이전에 입력 한 데이터에서 일부 열에서의 "널 (null)"데이터를했다. 내가 업데이 트 데이터베이스를 실행할 때마다 그래서 ... 나는 오류를 얻었다.
나는 수동으로 데이터베이스에서 내가 필요한 제작 된 컬럼에 널 (null)을 가진 모든 행을 삭제하여 그것을 해결.
-
==============================
12.당신은 ID 열 (여기에 내가 "PK"를 호출)에서 수동으로 값을 삽입 할 수 있습니다 :
당신은 ID 열 (여기에 내가 "PK"를 호출)에서 수동으로 값을 삽입 할 수 있습니다 :
insert into table1 (PK, var1, var2) values ((select max(PK)+1 from table1), 123, 456)
from https://stackoverflow.com/questions/10013313/why-is-sql-server-throwing-this-error-cannot-insert-the-value-null-into-column by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] PostgreSQL의 배제에 함께 인접한 / 중첩 항목 예방 (0) | 2020.04.15 |
---|---|
[SQL] 날짜 시간 데이터 유형에 VARCHAR 데이터 형식의 변환이 범위를 벗어난 값 초래 (0) | 2020.04.15 |
[SQL] dataframe 기능 대 스파크 SQL 쿼리 (0) | 2020.04.15 |
[SQL] 분할 다중 행으로 SQL 열의 값을 구분 (0) | 2020.04.15 |
[SQL] 2 개 날짜 매개 변수를 포함하는 가장 쉬운 사이의 날짜와 임시 테이블을 채우는 방법 및 (0) | 2020.04.15 |