Synonym trong SQL Server
Trong hướng dẫn này, bạn sẽ tìm hiểu về synonym trong SQL Server và cách tạo synonym cho các đối tượng cơ sở dữ liệu.
Synonym trong SQL Server là gì
Trong SQL Server, synonym là bí danh hoặc tên thay thế cho đối tượng cơ sở dữ liệu như bảng, view, stored procedure, hàm do người dùng định nghĩa và sequence. Synonym cung cấp cho bạn nhiều lợi ích nếu bạn sử dụng nó đúng cách.
Cú pháp câu lệnh CREATE SYNONYM trong SQL Server
Để tạo một synonym, bạn sử dụng câu lệnh CREATE SYNONYM
như sau:
CREATE SYNONYM [ schema_name_1. ] synonym_name
FOR object;
Đối tượng có dạng sau:
[ server_name.[ database_name ] . [ schema_name_2 ]. object_name
Trong cú pháp này:
- Đầu tiên, chỉ định
object
mục tiêu mà bạn muốn chỉ định một synonym trong mệnh đềFOR
. - Thứ hai, cung cấp tên của
FOR
sau câu lệnhCREATE SYNONYM
.
Lưu ý rằng đối tượng mà bạn tạo synonym không nhất thiết phải tồn tại tại thời điểm tạo synonym.
Ví dụ về câu lệnh CREATE SYNONYM trong SQL Server
Hãy lấy một số ví dụ về việc sử dụng câu lệnh CREATE SYNONYM
để hiểu rõ hơn.
Tạo synonym trong cùng một cơ sở dữ liệu
Ví dụ sau sử dụng câu lệnh CREATE SYNONYM
để tạo một synonym cho bảng sales.orders
:
CREATE SYNONYM orders
FOR sales.orders;
Khi synonym orders
được tạo, bạn có thể tham chiếu nó ở bất kỳ đâu mà bạn sử dụng đối tượng đích (bảng sales.orders
).
Ví dụ: truy vấn sau sử dụng synonym orders
thay vì bảng sales.orders
:
SELECT * FROM orders;
Tạo một synonym cho một bảng trong cơ sở dữ liệu khác
Đầu tiên, tạo một cơ sở dữ liệu mới có tên test
và đặt cơ sở dữ liệu hiện tại thành test
:
CREATE DATABASE test;
GO
USE test;
GO
Tiếp theo, tạo một lược đồ mới có tên purchasing
bên trong cơ sở dữ liệu test
:
CREATE SCHEMA purchasing;
GO
Sau đó, tạo một bảng mới trong lược đồ purchasing
của cơ sở dữ liệu test
:
CREATE TABLE purchasing.suppliers
(
supplier_id INT
PRIMARY KEY IDENTITY,
supplier_name NVARCHAR(100) NOT NULL
);
Sau đó, từ cơ sở dữ liệu BikeStores
, hãy tạo một synonym cho bảng purchasing.suppliers
trong cơ sở dữ liệu test
:
CREATE SYNONYM suppliers
FOR test.purchasing.suppliers;
Cuối cùng, từ cơ sở dữ liệu BikeStores
, hãy tham khảo bảng test.purchasing.suppliers
sử dụng synonym suppliers
như sau:
USE BikeStores;
GO
SELECT * FROM suppliers;
Liệt kê tất cả các synonym của cơ sở dữ liệu
Bạn có thể xem tất cả các synonym của cơ sở dữ liệu bằng cách sử dụng Transact-SQL và SQL Server Management Studio.
Liệt kê các synonym bằng lệnh Transact-SQL
Để liệt kê tất cả các synonym của cơ sở dữ liệu hiện tại, bạn truy vấn từ view sys.synonyms
như được trình bày trong truy vấn sau:
SELECT
name,
base_object_name,
type
FROM
sys.synonyms
ORDER BY
name;
Đây là kết quả:

Liệt kê các synonym bằng SQL Server Management Studio
Từ SQL Server Management Studio, bạn có thể xem tất cả synonym của cơ sở dữ liệu hiện tại thông qua menu Synonyms như trong hình sau:

Xóa synonym trong SQL Server
Để xóa một synonym, bạn sử dụng câu lệnh DROP SYNONYM
với cú pháp sau:
DROP SYNONYM [ IF EXISTS ] [schema.] synonym_name
Trong cú pháp này:
- Đầu tiên, hãy chỉ định tên synonym mà bạn muốn xóa sau câu lệnh
DROP SYNONYM
. - Thứ hai, sử dụng tùy chọn
IF EXISTS
để xóa synonym với điều kiện chỉ khi nó tồn tại. Việc xóa một synonym không tồn tại mà không có tùy chọnIF EXISTS
sẽ dẫn đến lỗi.
Ví dụ về xóa synonym
Ví dụ sau sử dụng câu lệnh DROP SYNONYM
để xóa synonym orders
:
DROP SYNONYM IF EXISTS orders;
Khi nào sử dụng synonym
Bạn sẽ tìm thấy một số tình huống mà bạn có thể sử dụng synonym một cách hiệu quả.
Đơn giản hóa tên đối tượng
Nếu bạn tham chiếu đến một đối tượng từ cơ sở dữ liệu khác (thậm chí từ máy chủ từ xa), bạn có thể tạo một synonym trong cơ sở dữ liệu của mình và tham chiếu đến đối tượng này như nó nằm trong cơ sở dữ liệu của bạn.
Cho phép thay đổi tên đối tượng liền mạch
Khi bạn muốn đổi tên bảng hoặc bất kỳ đối tượng nào khác, chẳng hạn như view, stored procedure, hàm do người dùng định nghĩa và sequence, các đối tượng cơ sở dữ liệu hiện có tham chiếu đến bảng này cần được sửa đổi theo cách thủ công để phản ánh tên mới.
Ngoài ra, tất cả các ứng dụng hiện tại sử dụng bảng này cần phải được thay đổi và có thể được biên dịch lại.
Để tránh tất cả những công việc khó khăn này, bạn có thể đổi tên bảng và tạo một synonym cho bảng để giữ cho các ứng dụng hiện có hoạt động bình thường.
Lợi ích của synonym
Synonym mang lại lợi ích sau nếu bạn sử dụng chúng đúng cách:
- Cung cấp một lớp trừu tượng trên các đối tượng cơ sở.
- Rút ngắn tên dài, ví dụ: rút ngắn tên rất dài của một đối tượng sau
very_long_database_name.with_schema.and_object_name
bằng bí danh đơn giản hóa. - Cho phép tương thích ngược đối với các ứng dụng hiện có khi bạn đổi tên các đối tượng cơ sở dữ liệu như bảng, view, stored procedure, hàm do người dùng định nghĩa và sequence.
Trong hướng dẫn này, bạn đã tìm hiểu về các synonym trong SQL Server và cách sử dụng chúng một cách hiệu quả trong các ứng dụng của bạn.