SQL Server 2008 : ID가 int의 최대 값을 초과하면 어떻게됩니까?
우리가 테이블을 가지고 있다고 상상해보십시오.create table MYTABLE (
id int IDENTITY(1,1)
,name varchar(10)
)
테이블에 많은 행을 삽입해야합니다.
생성 된 신원 값이 최대 정수 값 (2^63-1)을 초과 할 때 어떤 일이 일어날 지 아무도 알지 못합니까?
SQL Server 2008 : ID가 int의 최대 값을 초과하면 어떻게됩니까?
우리가 테이블을 가지고 있다고 상상해보십시오.create table MYTABLE (
id int IDENTITY(1,1)
,name varchar(10)
)
테이블에 많은 행을 삽입해야합니다.
생성 된 신원 값이 최대 정수 값 (2^63-1)을 초과 할 때 어떤 일이 일어날 지 아무도 알지 못합니까?
오류가 발생하고 삽입물이 손실됩니다.
메시지 8115, 수준 16, 상태 1, 줄 2 IDENTITY를 데이터 형식 int로 변환하는 산술 오버플로 오류. 산술 오버플로가 발생했습니다.
쉽게 decimal(1,0)
처럼, 아주 작은 ID 열이를 테스트 할 수 :
create table IdentityOverflow (id decimal(1,0) identity)
while 1=1
insert IdentityOverflow default values
오디드 말한다 마찬가지로,이 인쇄 :
Arithmetic overflow error converting IDENTITY to data type decimal.
이 정수의 경우에도 가장 큰 위해 보유를 :
create table IdentityOverflow (
id decimal(38,0) identity(1,10000000000000000000000000000000000000))
while 1=1
insert IdentityOverflow default values
시험 PLE
create table dbo.MYTABLE (
id tinyint IDENTITY(254,1)
,name varchar(10)
)
GO
INSERT dbo.MYTABLE (name) VALUES ('row 254')
GO
INSERT dbo.MYTABLE (name) VALUES ('row 255')
GO
INSERT dbo.MYTABLE (name) VALUES ('broke')
GO
는
Msg 8115, Level 16, State 1, Line 1
Arithmetic overflow error converting IDENTITY to data type tinyint.
Arithmetic overflow occurred.
당신이 문서에 대한 링크를 제공하시기 바랍니다 수 있습니다. – Tim