2012-12-20 4 views
0

, 내가 이런 말을 할 수행이없는 파생 테이블을 만들 수 있습니까? 즉

MERGE MyTable AS trg 
USING (VALUES(1, 'a')) AS src(key, val) 
ON ... 

내가 너무 이런 말을 할 수 있도록하려면이 할 수있는 방법이

-- does not work: 
MERGE MyTable AS trg 
USING() AS SRC(key, val) 
ON ... 

있습니까? MERGE, FROM 등의 설명서에서 접선 참조를 벗어난 파생 테이블 (SQL Server 2008R2)에 대한 많은 공식 문서를 찾을 수없는 것 같습니다.

+2

무엇이 좋을까요? 병합 할 소스 데이터가없는 경우 .... 왜 병합합니까? –

+0

MERGE 문은 코드로 생성됩니다. 소스 데이터가 비어 있으면 명령문은 목표 테이블의 행을 삭제합니다. (예 : ... 삭제 후 소스와 일치하지 않는 경우 ...) –

+1

'USING (키를 1로 선택,'값을 1로 '으로 선택) AS src (key, val)'해야하지만 어떻게 도움이 될지 모르겠습니다. – Pondlife

답변

1

예, 행을 반환 할 수없는 쿼리를 사용하여 파생 테이블 :

USING (SELECT 1 as 'key', 1 as 'val' where 1 = 0) AS src (key, val) 
+0

감사합니다. 약간 단순함 : USING (SELECT NULL, NULL WHERE 1 = 2) AS SRC (key, val) –

+0

@ChrisHerring 네, 그렇습니다. 누군가 컬럼 이름을 가진 빈 파생 테이블을 필요로한다면, 내가했던 것처럼 이름을 지정할 수 있습니다. – Pondlife

관련 문제