변수와 동의어 선언 및 할당
T-SQL에서 다른 프로그래밍 언어와 마찬가지로 변수는 나중에 사용할 값의 임시 스토리지를 허용하는 개체입니다. 매개 변수 값을 저장 프로시저 및 함수에 전달하는 데 사용할 때 변수가 이미 발견되었습니다.
T-SQL에서는 변수를 사용하려면 먼저 선언해야 합니다. 선언될 때 값을 할당하거나 초기화할 수 있습니다. 변수 선언에는 아래와 같이 이름 및 데이터 형식 제공이 포함됩니다. 변수를 선언하려면 DECLARE 문을 사용해야 합니다.
--Declare and initialize the variables.
DECLARE @numrows INT = 3, @catid INT = 2;
--Use variables to pass the parameters to the procedure.
EXEC Production.ProdsByCategory @numrows = @numrows, @catid = @catid;
GO
변수는 참조되는 것과 동일한 일괄 처리로 선언해야 합니다. 즉, 모든 T-SQL 변수는 표시 유형과 수명 모두에서 일괄 처리에 대해 범위가 로컬입니다. 동일한 일괄 처리의 다른 문만 일괄 처리에서 선언한 변수를 볼 수 있습니다. 일괄 처리가 종료되면 변수가 자동으로 제거됩니다.
변수 사용
변수를 선언한 후에는 변수를 초기화하거나 값을 할당해야 합니다. 다음 세 가지 방법으로 이 작업을 수행할 수 있습니다.
- SQL Server 2008 이상에서는 DECLARE 문을 사용하여 변수를 초기화할 수 있습니다.
- 모든 버전의 SQL Server에서는 SET 문을 사용하여 단일(스칼라) 값을 할당할 수 있습니다.
- 모든 버전의 SQL Server에서 SELECT 문을 사용하여 변수에 값을 할당할 수 있습니다. SELECT 문이 정확히 한 행을 반환하는지 확인합니다. 빈 결과는 변수를 원래 값으로 유지합니다. 둘 이상의 결과가 마지막 결과를 반환합니다.
다음 예제에서는 변수에 값을 선언하고 할당하는 세 가지 방법을 보여 줍니다.
DECLARE @var1 AS INT = 99;
DECLARE @var2 AS NVARCHAR(255);
SET @var2 = N'string';
DECLARE @var3 AS NVARCHAR(20);
SELECT @var3 = lastname FROM HR.Employees WHERE empid=1;
SELECT @var1 AS var1, @var2 AS var2, @var3 AS var3;
GO
그러면 다음 결과가 생성됩니다.
| var1 | var2 | var3 |
|---|---|---|
| 99 | 문자열 | 데이비스 |
팁 (조언)
지역 변수에 대한 전체 지침은 T-SQL 참조 설명서를 참조하세요.
동의어 사용
SQL Server에서 동의어는 동일한 데이터베이스 또는 SQL Server의 다른 인스턴스에 저장된 개체에 대한 링크 또는 별칭을 만드는 메서드를 제공합니다. 해당 개체에 대해 정의된 동의어가 있을 수 있는 개체에는 테이블, 뷰, 저장 프로시저 및 사용자 정의 함수가 포함됩니다.
동의어를 사용하여 원격 개체를 로컬로 표시하거나 로컬 개체에 대한 대체 이름을 제공할 수 있습니다. 예를 들어 동의어를 사용하여 클라이언트 코드와 코드에서 사용하는 실제 데이터베이스 개체 간에 추상화 계층을 제공할 수 있습니다. 이 코드는 개체의 실제 이름에 관계없이 별칭으로 개체를 참조합니다.
비고
아직 존재하지 않는 개체를 가리키는 동의어를 만들 수 있습니다. 이를 지연된 이름 확인이라고 합니다. SQL Server 엔진은 런타임에 동의어가 사용될 때까지 실제 개체가 있는지 확인하지 않습니다.
동의어를 관리하려면 다음 예제와 같이 DDL(데이터 정의 언어) 명령 CREATE SYNONYM, ALTER SYNONYM 및 DROP SYNONYM을 사용합니다.
CREATE SYNONYM dbo.ProdsByCategory FOR TSQL.Production.ProdsByCategory;
GO
EXEC dbo.ProdsByCategory @numrows = 3, @catid = 2;
동의어를 만들려면 동의어가 저장될 스키마를 변경할 수 있는 권한과 'CREATE SYNONYM' 권한이 있어야 합니다.
비고
동의어를 만들려면 사용자에게 CREATE SYNONYM 권한이 있어야 하며 대상 스키마에 ALTER SCHEMA 권한이 있거나 소유해야 합니다.
동의어는 런타임에 참조될 때 원본 개체로 확인되는 "빈" 개체입니다.