Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Microsoft Fabric'te SQL veritabanı
Yeni bir eş anlamlı oluşturur.
Transact-SQL söz dizimi kuralları
Sözdizimi
SQL Server söz dizimi:
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
}
Azure SQL Database and SQL database in Microsoft Fabric syntax:
CREATE SYNONYM [ schema_name_1. ] synonym_name FOR <object>
<object> ::=
{
[ database_name. [ schema_name_2 ] . | schema_name_2. ] object_name
}
Arguments
schema_name_1
Eş anlamlının oluşturulduğu şemayı belirtir. schema_name belirtilmezse, SQL Server geçerli kullanıcının varsayılan şemasını kullanır.
synonym_name
Yeni eş anlamlının adı.
server_name
Temel nesnenin bulunduğu sunucunun adı.
database_name
Temel nesnenin bulunduğu veritabanının adı. database_name belirtilmezse geçerli veritabanının adı kullanılır.
schema_name_2
Temel nesnenin şemasının adı. schema_name belirtilmezse, geçerli kullanıcının varsayılan şeması kullanılır.
object_name
Eş anlamlının başvurduğunu temel nesnenin adı.
Uyarı
Microsoft Fabric'teki Azure SQL Veritabanı ve SQL veritabanı, database_name.[schema_name].object_name mevcut veritabanı olduğunda veya database_name ise ve tempdb ile başladığında üç bölümlü isim formatını # destekler.
Açıklamalar
Temel nesnenin eş anlamlı oluşturma zamanında mevcut olması gerekmez. SQL Server, çalışma zamanında temel nesnenin varlığını denetler.
Aşağıdaki nesne türleri için eş anlamlılar oluşturulabilir:
- Derleme (CLR) saklı yordamı
- Derleme (CLR) tablo değerli işlevi
- Derleme (CLR) skaler işlevi
- Derleme (CLR) toplama işlevleri
- Çoğaltma filtresi yordamı
- Genişletilmiş saklı yordam
- T-SQL skaler işlevi
- T-SQL tablo değerli işlevi
- T-SQL satır içi tablo değerli işlevi
- T-SQL saklı yordamı
- Tablo (kullanıcı tanımlı, yerel ve genel geçici tabloları içerir)
- View
İşlev temel nesneleri için dört bölümlü adlar desteklenmez.
Dinamik T-SQL'de eş anlamlılar oluşturulabilir, bırakılabilir ve bunlara başvurulabilir.
Eş anlamlılar veritabanına özgü olup diğer veritabanları tarafından erişilemiyor.
Permissions
Belirli bir şemada eş anlamlı oluşturmak için kullanıcının izni ve CREATE SYNONYM şemaya sahip olması veya izni olması gerekir ALTER SCHEMA .
İzin CREATE SYNONYM , izin verilebilen bir izindir.
Uyarı
Temel nesnedeki tüm izin denetimi çalışma zamanına kadar ertelendiğinden, deyimi başarıyla derlemek CREATE SYNONYM için temel nesne üzerinde izne ihtiyacınız yoktur.
Örnekler
A. Yerel nesne için eş anlamlı oluşturma
Aşağıdaki örnek önce veritabanında temel nesne ProductAdventureWorks2025 için bir eş anlamlı oluşturur ve ardından eş anlamlıyı sorgular.
-- Create a synonym for the Product table in AdventureWorks2022.
CREATE SYNONYM MyProduct
FOR AdventureWorks2022.Production.Product;
GO
-- Query the Product table by using the synonym.
SELECT ProductID, Name
FROM MyProduct
WHERE ProductID < 5;
GO
Sonuç kümesi aşağıdadır.
ProductID Name
----------- --------------------------
1 Adjustable Race
2 Bearing Ball
3 BB Ball Bearing
4 Headset Ball Bearings
(4 row(s) affected)
B. Uzak nesneyle eş anlamlı oluşturma
Aşağıdaki örnekte, temel nesnesi Contactadlı Server_Remoteuzak sunucuda bulunur.
EXEC sp_addlinkedserver Server_Remote;
GO
USE tempdb;
GO
CREATE SYNONYM MyEmployee FOR Server_Remote.AdventureWorks2022.HumanResources.Employee;
GO
C. Kullanıcı tanımlı bir işlev için eş anlamlı oluşturma
Aşağıdaki örnek, sipariş tutarlarını 12 birim olarak artıran adlı dbo.OrderDozen bir işlev oluşturur. Örnek daha sonra işlevin eş dbo.CorrectOrder anlamlısını dbo.OrderDozen oluşturur.
-- Creating the dbo.OrderDozen function
CREATE FUNCTION dbo.OrderDozen (@OrderAmt INT)
RETURNS INT
WITH EXECUTE AS CALLER
AS
BEGIN
IF @OrderAmt % 12 <> 0
BEGIN
SET @OrderAmt += 12 - (@OrderAmt % 12)
END
RETURN (@OrderAmt);
END;
GO
-- Using the dbo.OrderDozen function
DECLARE @Amt INT;
SET @Amt = 15;
SELECT @Amt AS OriginalOrder,
dbo.OrderDozen(@Amt) AS ModifiedOrder;
-- Create a synonym dbo.CorrectOrder for the dbo.OrderDozen function.
CREATE SYNONYM dbo.CorrectOrder
FOR dbo.OrderDozen;
GO
-- Using the dbo.CorrectOrder synonym.
DECLARE @Amt INT;
SET @Amt = 15;
SELECT
@Amt AS OriginalOrder,
dbo.CorrectOrder(@Amt) AS ModifiedOrder;
İlgili içerik
- EŞANLAMI BIRAKMA (Transact-SQL)
- OLAY VERILERI (Transact-SQL)
- HİBE (Transact-SQL)
- Eş Anlamlılar (Veritabanı Altyapısı)