SQL Server에서 '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.
그럴 거예요.id을 사용하다
이 값을 설정해야 합니다. 그렇지 않으면 Null이 아닌 열이 기본값 없이 있는 경우 값을 지정하지 않으면 오류가 발생합니다.
SQL Server Management Studio에서 자동 증가를 설정하려면:
- ★★★★★★★★★★★★★★★★★★의 테이블을 엽니다.
Design - 을 선택하고 '다'로 합니다.
Column Properties - 래래 under
Indentity Specification, set , syslogs(Is Identity)=Yes★★★★★★★★★★★★★★★★★」Indentity Increment=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
)
)
경우,id '알다'가 .NOT NULL해야 합니다.
INSERT INTO dbo.role (id, name, created) VALUES ('something', 'Content Coordinator', GETDATE()), ('Content Viewer', GETDATE())
같은 문제가 발생.이치노 때 '를 표시하지 .ID의 열은 '이렇게 하다'가 .Auto Increment따라서 이 에러가 발생합니다.을 「 「 」로 해 주세요.Primary Key가 없다.null을 포함하므로 중복되지 않습니다.Auto Increment이나 column does not allow nulls. INSERT fails.
이 문제를 해결할 수 있는 방법은 두 가지가 있습니다.
1) MS SQL Server Management Studio 경유
MS SQL Server Management Studio로 이동
테이블을 찾아 오른쪽 버튼을 클릭한 후 [Design](설계)를 선택합니다.
열을 찾아 열 속성으로 이동합니다.
[ Indentity Specification ] : set ( Identity is Identity ) 。=예 및 들여쓰기 증가=1
2) ALTER SQL 경유
ALTER TABLE table DROP COLUMN id; // drop the existing ID
ALTER TABLE table ADD id int IDENTITY(1, 1) NOT NULL; // add new column ID with auto-increment
ALTER TABLE table ADD CONSTRAINT PK_ident_test PRIMARY KEY CLUSTERED (id); // make it primary key
삽입물에 ID를 지정하거나 데이터베이스의 ID 열을 ID 사양 = 예로 구성해야 합니다.
ID는 PK이므로 고유해야 하며 null이 아닙니다.삽입하기 위해 필드 목록에 필드를 지정하지 않으면 null 또는 기본값으로 간주됩니다.매번 수동으로 설정하지 않으려면 이 필드의 ID(즉, 자동 증가)를 설정합니다.
테이블을 작성할 때 id 열의 자동 증가 속성을 true로 설정해야 합니다.또는 기존 테이블을 변경하여 이 작업을 수행할 수 있습니다.
id 값을 알려주지 않았군요다음을 시도해 보십시오.
INSERT INTO role (id, name, created) VALUES ('example1','Content Coordinator', GETDATE()), ('example2', 'Content Viewer', GETDATE())
id 값을 자동으로 추가해야 하는 경우 id 필드에 자동 증분 값을 설정할 수 있습니다.
저도 비슷한 문제가 있어서 알아보니 실제 테이블에서 필드가 누락되어 있을 뿐입니다.id이었다empty/null). 즉, 필드를 작성하려고 하면 에러가 발생합니다.테이블에 값이 있는 행이 포함되어 있기 때문입니다.
이는 오류와 관련된 임시 테이블이 표시되는 경우 수정일 수 있습니다.SQL Server Management Studio를 사용하고 있었습니다.
경고! 이 메서드를 사용할 때 대상 테이블이 잠겨 있는지 확인하십시오(@OnurOmer의 설명에 따라).
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)
규칙: 새 데이터를 삽입할 때 null 값을 허용하지 않는 컬럼을 무시할 수 없습니다.
고객님의 케이스
- 값 삽입을 시도하고 있지만, 이 값은 무시합니다.
id컬럼. null은 사용할 수 없습니다.분명히 이건 효과가 없을 거야. - "ID 사양"은 자동으로 무효가 아닌 항목을 채우는 것 같습니다.
id나중에 삽입 쿼리를 실행할 때 값을 지정합니다(선택한 답변 참조).
마이 케이스
- 문제(SSMS 사용 중): 데이터가 있는 기존 테이블에 Null이 아닌 새 열을 추가하려고 할 때 이 오류가 발생했습니다.내가 받은 오류는 다음과 같다.
'id_foreign', 테이블 'MyDataBase.dbo'에 NULL 값을 삽입할 수 없습니다.Tmp_ThisTable'; 열은 null을 허용하지 않습니다.INSERT 실패.문이 종료되었습니다.
- 해결 방법:
- 필요한 칼럼을 만들었습니다.
id_foreignnull을 허용합니다. - 필요한 값을 모두 편집/삽입했습니다.
id_foreign. - 값이 지정되면 다시 돌아가서 [Allow Nulls]체크박스를 끄겠습니다이제 오류가 사라졌습니다.
- 필요한 칼럼을 만들었습니다.
언급URL : https://stackoverflow.com/questions/10013313/why-is-sql-server-throwing-this-error-cannot-insert-the-value-null-into-column
'programing' 카테고리의 다른 글
| 오류 "(유니코드 오류) '유니코드 이스케이프' 코덱이 위치 2-3의 바이트를 디코딩할 수 없습니다: 잘린 \UXXXXXXXX 이스케이프" (0) | 2023.04.15 |
|---|---|
| Swift: 이해 // MARK (0) | 2023.04.15 |
| 쓰기 오류와슬로우? 종료 중 오류 대 비종단 오류 (0) | 2023.04.15 |
| Excel 이름 범위 내의 셀을 참조하려면 어떻게 해야 합니까? (0) | 2023.04.15 |
| 할 수 있을까요? 할 수 있을까요? 할 수 있을까요? (0) | 2023.04.15 |