Khai báo và gán các biến và từ đồng nghĩa

Đã hoàn thành

Trong T-SQL, cũng như các ngôn ngữ lập trình khác, biến là các đối tượng cho phép lưu trữ tạm thời một giá trị để sử dụng sau này. Bạn đã gặp phải các biến khi sử dụng chúng để truyền giá trị tham số đến các thủ tục và hàm được lưu trữ.

Trong T-SQL, các biến phải được khai báo trước khi chúng có thể được sử dụng. Họ có thể được gán một giá trị, hoặc khởi tạo, khi họ được khai báo. Khai báo biến bao gồm cung cấp tên và kiểu dữ liệu, như minh họa dưới đây. Để khai báo một biến, bạn phải sử dụng câu lệnh KHAI BÁO.

--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

Các biến phải được khai báo trong cùng một lô mà trong đó chúng được tham chiếu. Nói cách khác, tất cả các biến T-SQL là cục bộ trong phạm vi để lô, cả hai trong khả năng hiển thị và đời. Chỉ các báo cáo khác trong cùng một lô có thể nhìn thấy một biến được khai báo trong lô. Biến sẽ tự động bị hủy khi lô kết thúc.

Làm việc với các biến số

Sau khi bạn đã khai báo một biến, bạn phải khởi tạo biến đó hoặc gán cho biến đó một giá trị. Bạn có thể làm điều đó theo ba cách:

  • Trong SQL Server 2008 trở lên, bạn có thể khởi tạo một biến bằng cách sử dụng câu lệnh KHAI BÁO.
  • Trong bất kỳ phiên bản SQL Server nào, bạn có thể gán một giá trị duy nhất (vô hướng) bằng cách sử dụng câu lệnh SET.
  • Trong bất kỳ phiên bản SQL Server nào, bạn có thể gán một giá trị cho một biến bằng cách sử dụng câu lệnh SELECT. Hãy đảm bảo rằng câu lệnh SELECT trả về chính xác một hàng. Một kết quả trống sẽ để lại biến với giá trị ban đầu của nó; nhiều hơn một kết quả sẽ trả về kết quả cuối cùng.

Ví dụ sau đây cho thấy ba cách khai báo và gán giá trị cho các biến:

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

Thao tác này sẽ tạo ra các kết quả sau đây.

var1 var2 var3
99 chuỗi Davis

Mẹo

Để biết hướng dẫn đầy đủ về các biến số cục bộ, hãy tham khảo tài liệu tham khảo T-SQL.

Làm việc với từ đồng nghĩa

Trong SQL Server, từ đồng nghĩa cung cấp phương pháp để tạo liên kết hoặc biệt danh cho đối tượng được lưu trữ trong cùng một cơ sở dữ liệu hoặc thậm chí trên một phiên bản khác của SQL Server. Các đối tượng có thể có từ đồng nghĩa được xác định cho chúng bao gồm bảng, dạng xem, thủ tục lưu trữ và hàm do người dùng xác định.

Có thể dùng từ đồng nghĩa để làm cho đối tượng từ xa xuất hiện cục bộ hoặc để cung cấp tên thay thế cho đối tượng cục bộ. Ví dụ, từ đồng nghĩa có thể được dùng để cung cấp một lớp trừu tượng giữa mã máy khách và các đối tượng cơ sở dữ liệu thực tế được mã sử dụng. Mã tham chiếu các đối tượng theo biệt danh của chúng, bất kể tên thực tế của đối tượng.

Ghi

Bạn có thể tạo từ đồng nghĩa trỏ tới một đối tượng chưa tồn tại. Điều này được gọi là độ phân giải tên bị trì hoãn. Công cụ SQL Server sẽ không kiểm tra sự tồn tại của đối tượng thực tế cho đến khi các từ đồng nghĩa được sử dụng tại thời gian chạy.

Để quản lý từ đồng nghĩa, hãy sử dụng các lệnh ngôn ngữ định nghĩa dữ liệu (DDL) CREATE SYNONYM, ALTER SYNONYM và DROP SYNONYM, như trong ví dụ sau đây:

CREATE SYNONYM dbo.ProdsByCategory FOR TSQL.Production.ProdsByCategory;
GO
EXEC dbo.ProdsByCategory @numrows = 3, @catid = 2;

Để tạo từ đồng nghĩa, bạn phải có quyền 'CREATE SYNONYM' cũng như quyền thay đổi sơ đồ trong đó từ đồng nghĩa sẽ được lưu trữ.

Ghi

Để tạo từ đồng nghĩa, người dùng phải có quyền CREATE SYNONYM và quyền sở hữu hoặc có quyền ALTER SCHEMA trong sơ đồ đích.

Từ đồng nghĩa là một đối tượng "rỗng" được giải quyết cho đối tượng nguồn khi được tham chiếu tại thời gian chạy.