다음을 통해 공유


SR0010: 테이블 또는 뷰를 조인할 때 더 이상 사용되지 않는 구문을 사용하지 않습니다.

규칙 ID

SR0010

범주

Microsoft.Design

변경 수준

주요 변경 아님

원인

테이블과 뷰 사이에 하나 이상의 조인이 현재 구문 대신 사용되지 않는 구문(예: WHERE 절에서 =, *= 또는 =*)을 사용하고 있습니다.

규칙 설명

사용되지 않는 구문을 사용하는 조인은 두 가지 범주로 분류됩니다.

  • 내부 조인
    내부 조인의 경우 조인되는 열의 값이 =, <, >, = 등과 같은 비교 연산자를 사용하여 비교됩니다. 각 테이블에서 적어도 하나 이상의 행이 조인 조건에 일치하면 경우에만 내부 조인의 행을 반환합니다.

  • 외부 조인
    이러한 행이 WHERE 또는 HAVING 검색 조건을 만족하는 한 외부 조인이 FROM 절에 지정된 최소 하나 이상의 테이블에서 모든 행을 반환합니다. * = 또는 = *를 사용하여 외부 조인을 지정할 경우 사용되지 않는 구문을 사용하는 것입니다.

위반 문제를 해결하는 방법

내부 조인의 위반을 해결하려면 이 항목의 뒷부분에 있는 예제에서 볼 수 있듯이 INNER JOIN 구문을 사용합니다. 자세한 내용은 Microsoft 웹 사이트에서 내부 조인 사용 페이지를 참조하십시오.

외부 조인의 위반을 해결하려면 이 항목의 뒷부분에 있는 예제에서 볼 수 있듯이 OUTER JOIN 구문을 사용합니다. 다음과 같은 옵션이 있습니다.

  • 왼쪽 우선 외부 조인 왼쪽 조인

  • 오른쪽 외부 조인 또는 오른쪽 조인

    참고

    Transact-SQL은 FULL OUTER JOIN 및 FULL JOIN을 지원하지만 해당 조인 형식에 이전 구문이 없습니다.

자세한 내용은 Microsoft 웹 사이트에서 외부 조인 사용 페이지를 참조하십시오.

경고를 표시하지 않는 경우

이 경고는 반드시 표시해야 합니다. 사용되지 않는 구문은 향후 릴리스의 SQL Server에서 작동하지 않을 수 있으므로 모든 인스턴스를 수정해야 합니다.

예제

6번째 예제에서는 다음 옵션을 보여줍니다.

  1. 예제 1은 내부 조인에 사용되지 않는 구문을 보여 줍니다.

  2. 예제 2는 현재 구문을 사용하기 위해 예제 1을 업데이트하는 방법을 보여 줍니다.

  3. 예제 3은 왼쪽 외부 조인에 사용되지 않는 구문을 보여 줍니다.

  4. 예제 4는 현재 구문을 사용하기 위해 예제 2를 업데이트하는 방법을 보여 줍니다.

  5. 예제 5는 오른쪽 외부 조인에 사용되지 않는 구문을 보여 줍니다.

  6. 예제 6은 현재 구문을 사용하기 위해 예제 5를 업데이트하는 방법을 보여 줍니다.

-- Example 1: Deprecated syntax for an inner join
SELECT [T2].[c3], [T1].[c3] 
FROM [dbo].[Table2] T2, [dbo].[Table1] T1 
WHERE [T1].[ID] = [T2].[ID]

-- Example 2: Current syntax for an inner join
SELECT [T2].[c3], [T1].[c3] 
FROM [dbo].[Table2] AS T2
INNER JOIN [dbo].[Table1] as T1
ON [T2].[ID] = [T2].[ID]

-- Example 3: Deprecated syntax for a left outer join
SELECT [T2].[c3], [T1].[c3] 
FROM [dbo].[Table2] T2, [dbo].[Table1] T1 
WHERE [T1].[ID] *= [T2].[ID]

-- Example 4: Fixed syntax for a left outer join
SELECT [T2].[c3], [T1].[c3] 
FROM [dbo].[Table2] AS T2
LEFT OUTER JOIN [dbo].[Table1] as T1
ON [T2].[ID] = [T2].[ID]

-- Example 5: Deprecated syntax for a right outer join
SELECT [T2].[c3], [T1].[c3] 
FROM [dbo].[Table2] T2, [dbo].[Table1] T1 
WHERE [T1].[ID] =* [T2].[ID]

-- Example 6: Fixed syntax for a right outer join
SELECT [T2].[c3], [T1].[c3] 
FROM [dbo].[Table2] AS T2
RIGHT OUTER JOIN [dbo].[Table1] as T1
ON [T2].[ID] = [T2].[ID]

참고 항목

개념

데이터베이스 코드를 분석하여 코드 품질 향상