2016-07-12 1 views
0

조건에 레코드를 삽입 할 때 사용자 정의 ID를 어떻게 만들 수 있습니까? 예를 들어, non-alumnialumni에서 기부를 허용하는 donor database program입니다. 동창의 맞춤 ID는 A00001에서 시작해야하며 동창이 아닌 사용자는 N00001이어야합니다. 그리고 주목할 것은, 삽입 될 레코드는 엑셀 파일에서 나온 다른 테이블에서 올 것이라고합니다.SQL 서버에 레코드를 삽입하는 동안 조건이있는 사용자 정의 ID 생성

도움이나 설명을 제공해 주시면 감사하겠습니다.

답변

0

이와 비슷한 기능이 있습니까?

DECLARE @Table TABLE (ID VARCHAR(20)); 

-- Non alumni 
INSERT INTO @Table 
     (ID) 
VALUES ('N00011') 

INSERT INTO @Table 
     (ID) 
VALUES ('N00012') 

INSERT INTO @Table 
     (ID) 
VALUES ('N00013') 

-- Alumni 
INSERT INTO @Table 
     (ID) 
VALUES ('A00011') 

INSERT INTO @Table 
     (ID) 
VALUES ('A00012') 

INSERT INTO @Table 
     (ID) 
VALUES ('A00013') 

-- Insert Alumni 
INSERT INTO @Table 
     (ID 
     ) 
     SELECT 'A' + RIGHT('00000' 
          + CAST(MAX(RIGHT(ID, LEN(ID) - 1)) + 1 AS VARCHAR(10)), 
          5) 
     FROM @Table 
     WHERE LEFT(ID, 1) = 'A' 

-- Insert Non Alumni 
INSERT INTO @Table 
     (ID 
     ) 
     SELECT 'N' + RIGHT('00000' 
          + CAST(MAX(RIGHT(ID, LEN(ID) - 1)) + 1 AS VARCHAR(10)), 
          5) 
     FROM @Table 
     WHERE LEFT(ID, 1) = 'N' 
+0

원본 테이블의 ID가 존재하지 않는다고 알려주는 것을 잊었습니다. 따라서 ID는 빈 열과 같이 생성되어야합니다. – japogs

관련 문제