동의어 사용(데이터베이스 엔진)

업데이트: 2006년 4월 14일

여러 SQL 문 및 식 컨텍스트에서 동의어를 해당 참조 기준 개체 대신 사용할 수 있습니다. 다음 표에서는 이러한 문 및 식 컨텍스트를 나열합니다.

SELECT

INSERT

UPDATE

DELETE

EXECUTE

하위 SELECT

앞에서 설명한 컨텍스트에서 동의어를 사용하면 기준 개체가 영향을 받습니다. 예를 들어 동의어가 테이블 기준 개체를 참조하며 동의어에 행을 삽입한 경우 실제로 참조되는 테이블에 행이 삽입됩니다.

[!참고] 연결된 서버에 있는 동의어는 참조할 수 없습니다.

동의어를 OBJECT_ID 함수의 매개 변수로 사용할 수 있습니다. 그러나 함수는 기본 개체가 아닌 동의어의 개체 ID를 반환합니다.

DDL 문에서는 동의어를 참조할 수 없습니다. 예를 들어 dbo.MyProduct라는 동의어를 참조하는 다음 문은 오류를 생성합니다.

ALTER TABLE dbo.MyProduct
   ADD NewFlag int null;
EXEC ('ALTER TABLE dbo.MyProduct
   ADD NewFlag int null');

사용 권한 제어를 위한 다음 문은 동의어에만 관련되며 기준 개체와는 관련되지 않습니다.

GRANT

DENY

REVOKE

 

동의어는 스키마 바운드가 아니므로 다음과 같은 스키마 바운드 식 컨텍스트에서 참조할 수 없습니다.

CHECK 제약 조건

계산 열

기본 식

규칙 식

스키마 바운드 뷰

스키마 바운드 함수

스키마 바운드 함수에 대한 자세한 내용은 사용자 정의 함수 만들기(데이터베이스 엔진)를 참조하십시오.

다음 예에서는 이후의 예에서 사용할 동의어를 만듭니다.

USE tempdb;
GO
CREATE SYNONYM MyAddressType
FOR AdventureWorks.Person.AddressType;
GO

다음 예에서는 MyAddressType 동의어가 참조하는 기준 테이블에 열을 삽입합니다.

USE tempdb;
GO
INSERT INTO MyAddressType (Name)
VALUES ('Test');
GO

다음 예에서는 동적 SQL에서 동의어를 참조하는 방법을 보여 줍니다.

USE tempdb;
GO
EXECUTE ('SELECT Name FROM MyAddressType');
GO

참고 항목

개념

동의어(데이터베이스 엔진)
소유권 체인

관련 자료

CREATE SYNONYM(Transact-SQL)
DROP SYNONYM(Transact-SQL)

도움말 및 정보

SQL Server 2005 지원 받기

변경 내역

릴리스 내역

2006년 4월 14일

새로운 내용
  • OBJECT_ID 함수에 동의어 사용에 대한 정보를 추가했습니다.
변경된 내용
  • 동의어를 사용할 수 있는 문 목록에서 DDL을 제거했습니다.