2012-01-23 3 views

답변

0

만 곧 SQL 서버 2012에서 도와는 SQL 표준은 시퀀스 객체를 준수 지원합니다. SQL 서버의 현재 버전에서 :-((2008 R2 이하) 당신이로 신원 contstraint와 열을 사용한다 : 이것은 1로 시작하고 그들을 증가 ID 열에 값을 생성합니다

CREATE TABLE t1 
(
    id  int identity(1,1), 
    somecol varchar(50) 
); 

1.

+0

아니요 여러 테이블에 있어야하며 고유해야합니다. 이제 사용하는 방법은 먼저 ID 열에서 데이터를 생성 한 다음 데이터에서 데이터를 잘라냅니다. 하지만 나는 당신이 100 명의 사용자가 같은 시간에 양식을 제출할 때 따라야 할 좋은 메커니즘이라고 생각하지 않습니다. – smilu

+0

그렇다면 SQL Server 2012를 기다리지 않는 한 오라클에서 수행 할 수 없습니다! C# 또는 VB.NET에서 사용자 정의 데이터 유형을 만들고 어셈블리를 가져올 수 있습니다. – Mithrandir

1

시퀀스의 단계는 SQL 서버 2012에 추가되고있다 - 그러나 이것은 아직은으로 해제되지 않습니다 사전에 그들을 밖으로 시도 할 경우 제품의 릴리스 후보를에있다

합니다.. 시퀀스는 단일 테이블에 의해 사용되는 것입니다, 그리고 당신은 시작 번호와 th를 지정할 수있는 ID 컬럼 기능을 사용할 수 있습니다. 레코드 당 e 값이 추가됩니다.

여러 테이블에서 사용할 수있는 시퀀스를 찾으려면 SQL 서버 내에 ID 필드의 단일 열이있는 전용 테이블을 만들어야하며 .nextval 테이블에 행을 삽입하여 새 번호를 얻습니다. 테이블은 시퀀스처럼 작동합니다. 시간이 지남에 따라 테이블이 가득 차고 테이블에 레코드를 보관할 필요가 없으며 ID는 현재 값을 저장하고 시스템 테이블의 다음 값을 얻기 위해 증분을 저장합니다.

+0

아니요, 여러 테이블에 있어야하며 고유해야합니다. 이제 사용하는 방법은 먼저 ID 열에서 데이터를 생성 한 다음 데이터에서 데이터를 잘라냅니다. 하지만 나는 당신이 100 명의 사용자가 같은 시간에 양식을 제출할 때 따라야 할 좋은 메커니즘이라고 생각하지 않습니다. – smilu

+0

당신은 옳습니다. 위대한 메커니즘이 아닙니다. 동작을 모방하지만, 오버 헤드가 너무 많아서 부하 테스트를 통해 알아 내야합니다. – Andrew