2017-04-10 2 views
-1

이 문제가 발견되어이 웹 사이트의 인터넷에서 특히 동일한 문제를 발견 할 수 없습니다.char에 대한 ID 증가 #

정수형 데이터 유형은 실제로 char 데이터 형식과 다릅니다. 정수에 ID를 사용하면이 ID는 테이블 아래의 설정에서 자동으로 증가 할 수 있습니다 ->Link for description. 반면에, 내가 그것을 할 수 없다는 char 데이터 형식을 사용할 때. ->link for description.

증가 문제 (내가이 문자를 사용해야하는 이유) 외에도 데이터는 2 문자와 3 숫자 (예 : LA002)를 포함해야하지만 ID는 자동으로 생성되어야하며 숫자 예제 LA001에 대해 서서히 증가해야합니다 , LA002, LA ..., LAnnn.

코드의 응답 또는 자동으로 설정하는 방법은이 문제를 해결하는 데 도움이 될 수 있습니다. 도와 주셔서 감사합니다.

+2

나는 당신의'를 사용할 수 있다고 생각 '자동 증가 ID '와 문자열 (귀하의 경우 : LA)의 조합 인 복합 키입니다. –

+1

DB에 대해 두 개의 이미지를 게시했지만 사용자는 어떠한 sql 태그도 포함하지 않습니다. 이 자동 증가가 SQL 측 또는 C# 측에서 수행되어야하는지 지정하지 않습니다. – xanatos

+0

@ kienct89 자동 완성 구문을 사용해야하는 동안 "복합 키"문제에 대한 코드를 작성해야합니까? –

답변

0
당신은 자동 증가 ID 열 함께 사용자 정의 기본 키를 사용할 수 있습니다

:

CREATE TABLE AutoIncrementCustomIDTable 
(
    MyKey AS ('LA' + LEFT('000', 3 - LEN(AutoIncId)) + CONVERT(varchar(3), AutoIncId)) PERSISTED NOT NULL PRIMARY KEY,  
    AutoIncId INT IDENTITY NOT NULL, 
    Col1 VARCHAR(10) 
); 


INSERT INTO AutoIncrementCustomIDTable (Col1) VALUES ('111') 
INSERT INTO AutoIncrementCustomIDTable (Col1) VALUES ('222') 
INSERT INTO AutoIncrementCustomIDTable (Col1) VALUES ('333') 

SELECT * FROM AutoIncrementCustomIDTable 
0

당신은 두 개의 열을 사용할 수는 하나 개의 컬럼은 autoincremental ID에 대한 기본 'LA'접두사와 두 번째 열, 모두 포함 이는 기본 키에 대해 그룹화됩니다.

CREATE TABLE ( 아이디 INT NOT NULL AUTO_INCREMENT, 접두사 CHAR (30) NOT NULL DEFAULT 'LA', PRIMARY KEY (ID, 접두사))