ID
테이블의 ID 열이되도록 설정된 열로 만들지 않았기 때문에 날려 버릴 기존 테이블이 있습니다.
SQL Server Management Studio를 사용 하여 기존 테이블의 “Create To …”를 스크립팅하여 다음을 얻었습니다.
CREATE TABLE [dbo].[History](
[ID] [int] NOT NULL,
[RequestID] [int] NOT NULL,
[EmployeeID] [varchar](50) NOT NULL,
[DateStamp] [datetime] NOT NULL,
CONSTRAINT [PK_History] PRIMARY KEY CLUSTERED
(
[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]
내 질문은 SQL
결과 테이블에 ID
열이 Identity 로 설정 되도록 어떻게 수정 합니까?
답변
CREATE TABLE [dbo].[History](
[ID] [int] IDENTITY(1,1) NOT NULL,
[RequestID] [int] NOT NULL,
[EmployeeID] [varchar](50) NOT NULL,
[DateStamp] [datetime] NOT NULL,
CONSTRAINT [PK_History] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
) ON [PRIMARY]
답변
이것은 이미 답변되었지만 가장 간단한 구문은 다음과 같습니다.
CREATE TABLE History (
ID int primary key IDENTITY(1,1) NOT NULL,
. . .
더 복잡한 제약 인덱스는 실제로 옵션을 변경하려는 경우 유용합니다.
그건 그렇고, 그러한 열의 이름을 HistoryId로 지정하는 것을 선호하므로 외래 키 관계의 열 이름과 일치합니다.
답변
[id] [int] IDENTITY(1,1) NOT NULL,
물론 SQL Server Management Studio에서 테이블을 만들고 있기 때문에 테이블 디자이너를 사용하여 ID 사양을 설정할 수 있습니다.
답변
고유 키는 최대 2 개의 NULL 값을 허용합니다. 설명 :
create table teppp
(
id int identity(1,1) primary key,
name varchar(10 )unique,
addresss varchar(10)
)
insert into teppp ( name,addresss) values ('','address1')
insert into teppp ( name,addresss) values ('NULL','address2')
insert into teppp ( addresss) values ('address3')
select * from teppp
null string , address1
NULL,address2
NULL,address3
아래와 같은 값을 삽입하려고하면 :
insert into teppp ( name,addresss) values ('','address4')
insert into teppp ( name,addresss) values ('NULL','address5')
insert into teppp ( addresss) values ('address6')
매번 다음과 같은 오류가 발생합니다.
UNIQUE KEY 제약 조건 ‘UQ__teppp__72E12F1B2E1BDC42’위반. ‘dbo.teppp’개체에 중복 키를 삽입 할 수 없습니다.
그 진술서는 만료되었습니다.