2010-12-10 4 views
0
---------- 
ID NAME 
3 A 
4 B 
5 C 
---------- 

모든 레코드를 삭제하면 숫자 5의 레코드 다음에 계속되지만이 테이블의 첫 번째 인덱스를 삽입해야합니다. 누구든지 나를 도울 수 있습니까?빈 레코드를 테이블에 삽입하는 방법

+0

@ InSane, ID 열은 ID이며, ID (1,2,6,7,8 ...) – ozkank

답변

0

ID 열이 IDENTITY 열인 것처럼 보입니다.이 열은 삭제에 관계없이 항상 다음 값을 추가합니다.

응용 프로그램 설계가 의존하는 것처럼 특정 ID를 가져야한다는 요구 사항이 있습니다. 이는 좋은 습관이 아닙니다. ID 필드에는 간격이 있습니다 (이는 정상적인 현상입니다). 응용 프로그램은 해당 필드에 의존해서는 안됩니다. 에 관계없이

, 여기에이 일을 몇 가지 방법은 다음과 같습니다 일회성를 들어

SET IDENTITY INSERT ON 사용 :

SET IDENTITY INSERT dbo.myTable ON 

INSERT INTO myTable 
(ID, NAME) 
VALUES 
(1, 'H') 

SET IDENTITY INSERT dbo.myTable OFF 

시드를 재설정하려면, 당신은 RESEED를 사용하여 DBCC CHECKIDENT 명령을 사용할 필요가 :

DBCC CHECKIDENT('myTable', RESEED, 0) 
1

간단한 방법은

하는 것 테이블 ID 열을 포함하는 경우 TRUNCATE TABLE (Transact-SQL)

가입일 대신

DELETE FROM mytable 

의 515,

TRUNCATE TABLE mytable; 

은 그 컬럼에 대한 카운터는 열에 대해 정의 된 시드 값으로 리셋된다. 시드가 정의되지 않은 경우 기본값 1이 사용됩니다. ID 카운터를 유지하려면 대신 DELETE를 사용하십시오.

+0

+1을 사용하여 삽입하려면 DELETE + DBCC CHECKINDENT를 사용하는 것이 좋습니다. – InSane

0

자동 생성 된 ID 열의 값을 1로 다시 시작 하시겠습니까? 이 IDENTITY 열 경우 , 당신은 TEH 다음 명령

DBCC CHECKIDENT('YourTableNameHere', RESEED, 0) 
2

I, 당신은 IDENTITY 열 같은 ID 열을 가지고 가정으로 시드 값을 재설정 할 수 있습니다 당신은 1에서 다시 시작을 재설정 할 테이블에서 모든 행을 제거한 후

처음에는 ID 값이 1부터 시작하는 등의 필요성이있는 것으로 나타났습니다. IDENTITY 열은 번호 매기기에 항상 간격이있을 수 있으며 불투명 한 얼룩으로 취급됩니다. 그들이 정수로 보이고 기억하기 쉬운 경향이 있다는 사실은 단지 구현 세부 사항입니다. 당신이 그런 리셋을 수행하려는 경우 당신이 정말로 이러한 ID 값 (예를 들어에 의존하는 경우 그들이 때문에

둘째, 당신은 DBCC CHECKIDENT


편집

을 사용하십시오 또한 응용 프로그램에서 사용됨), 먼저 열에 IDENTITY 속성이 없어야 함을 나타내는 좋은 지표입니다. 불행하게도이 속성을 직접 제거 할 수는 없습니다.이 속성없이 테이블 복사본을 만들고 모든 행을 복사하고 원본 테이블을 삭제하고 복사본의 이름을 변경해야합니다.Management Studio에서는 속성을 제거 할 수있는 것처럼 보이지만 방금 설명한 내용을 수행합니다.

0

데이터베이스 ID 기능은 다른 레코드가 절대로 동일한 ID를 갖지 않도록하기위한 것입니다. 이는 동시에 존재하는 레코드뿐만 아니라 다른 레코드가 삭제 된 후에 삽입되는 새 레코드에 대해서도 유효합니다. 이는 충돌을 피하는 데 매우 유용합니다. 그것은 때로는 어떤 사람들의 감각을 깨뜨리는 것 같지만 주위를 해결하지 마십시오.

레코드에 자체 선택한 번호를 지정해야하는 경우 다른 열을 추가하십시오. 자동 색인 열은 항상 사용되어야합니다. 다른 사용자는 색인을 사용하는 방법을 알려 주었지만이 기능은 매우 조심스럽게 사용하십시오.

관련 문제