다음을 통해 공유


CREATE SYNONYM(Transact-SQL)

새 동의어를 만듭니다.

항목 링크 아이콘Transact-SQL 구문 표기 규칙

구문

CREATE SYNONYM [ schema_name_1. ] synonym_name FOR < object >

< object > :: =
{
    [ server_name.[ database_name ] . [ schema_name_2 ].| database_name . [ schema_name_2 ].| schema_name_2. ] object_name
}

인수

  • schema_name_1
    동의어가 생성되는 스키마를 지정합니다. schema를 지정하지 않으면 SQL Server 2005는 현재 사용자의 기본 스키마를 사용합니다.
  • synonym_name
    새 동의어의 이름입니다.
  • server_name
    기준 개체가 있는 서버의 이름입니다.
  • database_name
    기준 개체가 있는 데이터베이스의 이름입니다. database_name을 지정하지 않으면 현재 데이터베이스의 이름이 사용됩니다.
  • schema_name_2
    기준 개체의 스키마 이름입니다. schema_name을 지정하지 않으면 현재 사용자의 기본 스키마가 사용됩니다.
  • object_name
    동의어가 참조하는 기준 개체의 이름입니다.

주의

동의어를 만들 때 기준 개체가 존재해야 할 필요는 없습니다. SQL Server는 기준 개체의 존재 여부를 런타임에 검사합니다.

다음과 같은 유형의 개체에 대해 동의어를 만들 수 있습니다.

어셈블리(CLR) 저장 프로시저

어셈블리(CLR) 테이블 값 함수

어셈블리(CLR) 스칼라 함수

어셈블리 집계(CLR) 집계 함수

복제 필터 프로시저

확장 저장 프로시저

SQL 스칼라 함수

SQL 테이블 값 함수

SQL 인라인 테이블 값 함수

SQL 저장 프로시저

테이블1(사용자 정의)

1 로컬 및 전역 임시 테이블이 포함됩니다.

4부분으로 된 함수 기준 개체 이름은 지원되지 않습니다.

동의어는 동적 SQL에서 생성, 삭제 및 참조할 수 있습니다.

사용 권한

지정된 스키마에서 동의어를 만들려면 사용자에게 CREATE SYNONYM 권한이 있어야 하며 스키마를 소유하거나 ALTER SCHEMA 권한이 있어야 합니다.

CREATE SYNONYM 권한은 부여할 수 있는 권한입니다.

[!참고] 기준 개체에 대한 모든 권한 확인은 런타임까지 지연되므로 CREATE SYNONYM 문을 성공적으로 컴파일하기 위해 기준 개체에 대한 권한이 필요하지는 않습니다.

1. 로컬 개체의 동의어 만들기

다음 예에서는 먼저 AdventureWorks 데이터베이스의 기준 개체인 Product에 대한 동의어를 만든 다음 동의어를 사용하여 쿼리합니다.

USE tempdb;
GO
-- Create a synonym for the Product table in AdventureWorks.
CREATE SYNONYM MyProduct
FOR AdventureWorks.Production.Product;
GO

-- Query the Product table by using the synonym.
USE tempdb;
GO
SELECT ProductID, Name 
FROM MyProduct
WHERE ProductID < 5;
GO

결과 집합은 다음과 같습니다.

-----------------------
ProductID   Name                      
----------- --------------------------
1           Adjustable Race
2           Bearing Ball
3           BB Ball Bearing
4           Headset Ball Bearings
(4 row(s) affected)

2. 원격 개체의 동의어 만들기

다음 예에서 기준 개체인 Contact는 원격 서버인 Server_Remote에 있습니다.

EXEC sp_addlinkedserver Server_Remote;
GO
USE tempdb;
GO
CREATE SYNONYM MyEmployee FOR Server_Remote.AdventureWorks.HumanResources.Employee;
GO

참고 항목

참조

DROP SYNONYM(Transact-SQL)
GRANT(Transact-SQL)
EVENTDATA(Transact-SQL)

관련 자료

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

도움말 및 정보

SQL Server 2005 지원 받기