2014-06-16 4 views
-2

하나의 임시 테이블에서 다른 테이블로 선택하려고합니다. ID가 17 인 경우를 제외하고는 모든 레코드가 그대로 복사됩니다.이 경우 ID가 두 번째 테이블에서 18이되기를 원합니다. 어떻게하면 좋을까요?쿼리의 단일 레코드 변경

+0

을,하지만 당신은'케이스를 할 수있는 당신' Select 문을 선택하십시오. – Siyual

+0

새 임시 테이블을 만들거나 기존 테이블에 삽입 하시겠습니까? – Siyual

+0

두 임시 테이블이 이미 있습니까? – arserbin3

답변

2

이미 존재하는 두 테이블이 쿼리를 사용하는 경우에 때 ID가 = 17 다음 18 그렇지 ID End`를 그것은 그것을 할 이상한 것 같다

SET IDENTITY_INSERT #t2 ON -- only needed if ID is a Primary Key 

INSERT INTO #t2 (
    ID 
    ,Column1 
    ,Column2 
    ) 
SELECT 
    CASE 
     WHEN #t1.ID = 17 THEN 18 
     ELSE #t1.ID 
    END AS ID 
    ,#t1.Column1 
    ,#t1.Column2 
FROM #t1 

SET IDENTITY_INSERT #t2 OFF -- only needed if ID is a Primary Key 
0
SELECT * 
    ,CASE WHEN ID=17 THEN 18 
     ELSE ID 
    END ID 
INTO #temp2 
FROM #temp1 
+0

테이블의 구조가 동일하면 오류가 발생합니다. 이렇게하면 끝 부분에 추가 필드가 추가됩니다. – Siyual

+0

ID 열이 중복되기 때문에 예, 동의합니다. 그러나 Iam은 테이블의 구조에 익숙하지 않고 왜 내가 별을 사용했는지를 잘 모릅니다. –

관련 문제