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.
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.
Để 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:
object
mục tiêu mà bạn muốn chỉ định một synonym trong mệnh đề FOR
.FOR
sau câu lệnh CREATE 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.
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.
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;
Đầ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;
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ê 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ả:
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 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:
DROP SYNONYM
.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ọn IF EXISTS
sẽ dẫn đến lỗi.Ví dụ sau sử dụng câu lệnh DROP SYNONYM
để xóa synonym orders
:
DROP SYNONYM IF EXISTS orders;
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ế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.
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.
Synonym mang lại lợi ích sau nếu bạn sử dụng chúng đúng cách:
very_long_database_name.with_schema.and_object_name
bằng bí danh đơn giản hóa.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.
Bạn có thể vui lòng tắt trình chặn quảng cáo ❤️ để hỗ trợ chúng tôi duy trì hoạt động của trang web.
Trong hướng dẫn này, bạn sẽ tìm hiểu về GUID trong SQL Server và cách sử dụng hàm NEWID() để tạo giá trị GUID.
Trong hướng dẫn này, bạn sẽ học cách sử dụng kiểu dữ liệu DATETIMEOFFSET trong SQL Server để thao tác datetime với múi giờ.
Trong hướng dẫn này, bạn sẽ học cách lưu trữ thời gian trong ngày trong cơ sở dữ liệu bằng cách sử dụng kiểu dữ liệu TIME trong SQL Server.
Trong hướng dẫn này, bạn sẽ học cách sử dụng kiểu dữ liệu DATE trong SQL Server để lưu trữ dữ liệu ngày tháng trong một bảng.