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ı
Eş anlamlı, aşağıdaki amaçlara hizmet eden bir veritabanı nesnesidir:
Yerel veya uzak sunucuda var olabilecek, temel nesne olarak adlandırılan başka bir veritabanı nesnesi için alternatif bir ad sağlar.
İstemci uygulamasını temel nesnenin adında veya konumunda yapılan değişikliklerden koruyan bir soyutlama katmanı sağlar.
Örneğin, Sunucu1 adlı bir sunucuda bulunan Adventure Works'ün Çalışan tablosunu göz önünde bulundurun. Başka bir sunucu olan Server2'den bu tabloya başvurmak için bir istemci uygulamasının Sunucu1.AdventureWorks.Person.Employee adlı dört bölümlü adını kullanması gerekir. Ayrıca, tablonun konumu örneğin başka bir sunucuyla değiştirilecekse, istemci uygulamasının bu değişikliği yansıtacak şekilde değiştirilmesi gerekir.
Bu iki sorunu da çözmek için Sunucu1'dekiÇalışan tablosu için Sunucu2'de ayrılmış veya mevcut bir şemada (RemoteObjects) EmpTable adlı bir eş anlamlı oluşturabilirsiniz. Şimdi istemci uygulamasının, Server1 Çalışan tablosuna başvurmak için yalnızca remoteObjects.EmpTable adlı iki bölümlü adı kullanması gerekir. Ayrıca, Çalışan tablosunun konumu değişirse, Çalışan tablosunun yeni konumunu işaret edecek şekilde EmpTable eş anlamlısını değiştirmeniz gerekir. ALTER SYNONYM deyimi olmadığından, önce RemoteObjects.EmpTable eş anlamlısını bırakmanız ve ardından aynı ada sahip eş anlamlıyı yeniden oluşturmanız gerekir, ancak şimdi eş anlamlıyı Çalışan tablosunun yeni konumuna işaret edin.
Eş anlamlı bir şemaya aittir ve şemadaki diğer nesneler gibi eş anlamlının adı da benzersiz olmalıdır. Aşağıdaki veritabanı nesneleri için eş anlamlılar oluşturabilirsiniz:
Derleme (CLR) saklı yordamı
Derleme (CLR) skaler işlevi
Çoğaltma filtresi yordamı
SQL skaler işlevi
SQL satır içi tablolanmış değerli işlev
View
Derleme (CLR) tablo değerli işlevi
Derleme (CLR) toplama işlevleri
SQL tablo türü işlev
SQL saklı yordamı
Tablo* (Kullanıcı tanımlı)
*Yerel ve genel geçici tabloları içerir
Uyarı
İşlev temel nesneleri için dört bölümlü adlar desteklenmez.
Eş anlamlı başka bir eş anlamlının temel nesnesi olamaz ve eş anlamlı kullanıcı tanımlı toplama işlevine başvuramaz.
Bir eş anlamlı ile temel nesnesi arasındaki bağlama yalnızca isim üzerinden yapılır. Temel nesne üzerinde tüm varlık, tür ve izin denetimi çalışma süresine kadar ertelenmiş olur. Bu nedenle, temel nesne değiştirilebilir, silinebilir veya özgün temel nesneyle aynı ada sahip başka bir nesneyle değiştirilebilir. Örneğin, Adventure Works'teki Person.Contact tablosuna başvuran dbo.MyContacts eş anlamlısını düşünün. Kişi tablosu bırakılır ve yerine Person.Contact adlı bir görünüm eklenirse, MyContacts artık Person.Contact görünümüne başvurur.
Eş anlamlılara yapılan başvurular şemaya bağlı değildir. Bu nedenle, herhangi bir zamanda bir eş anlamlı bırakılabilir. Ancak, bir eş anlamlıyı kaldırarak, kaldırılan eş anlamlıya askıda kalan başvurular bırakma riskiyle karşılaşırsınız. Bu referanslar yalnızca çalışma zamanında bulunur.
Eş Anlamlılar ve Şemalar
Sahip olmadığınız varsayılan bir şemanız varsa ve eş anlamlı oluşturmak istiyorsanız, eş anlamlı adını sahip olduğunuz şemanın adıyla nitelemeniz gerekir. Örneğin, bir şema S1'iniz varsa ama varsayılan şemanız S2 ise ve CREATE SYNONYM deyimini kullanıyorsanız, tek parçalı bir ad kullanarak eş anlamlıyı adlandırmak yerine eş anlamlının adını şema S1 ile önek olarak belirtmeniz gerekir. Eş anlamlılar oluşturma hakkında daha fazla bilgi için bkz. CREATE SYNONYM (Transact-SQL).
Eş Anlamlıya İzin Verme İşlemi
Yalnızca eş anlamlı sahipleri, db_owner üyeleri veya db_ddladmin üyeleri eş anlamlı üzerinde izin verebilir.
Eş anlamlı üzerinde aşağıdaki izinlerden herhangi birini veya tümünü GRANT, DENY, ve REVOKE yapabilirsiniz.
KONTROL
EXECUTE
SELECT
Güncelleme
DELETE
INSERT
SORUMLULUK ALMAK
TANıMı GÖRÜNTÜLE
Eş Anlamlıları Kullanma
Çeşitli SQL deyimlerinde ve ifade bağlamlarında başvuruda bulundukları temel nesne yerine eş anlamlıları kullanabilirsiniz. Aşağıdaki sütunlar bu deyimlerin ve ifade bağlamlarının listesini içerir:
SELECT
Güncelleme
EXECUTE
INSERT
DELETE
Alt seçim
Daha önce belirtilen bağlamlarda eş anlamlılarla çalışırken, temel nesne etkilenir. Örneğin, eş anlamlı tablo olan bir temel nesneye başvuruda bulunursa ve eş anlamlıya bir satır eklerseniz, başvuruda bulunan tabloya aslında bir satır eklersiniz.
Uyarı
Bağlı sunucuda bulunan bir eş anlamlıya başvuramazsınız.
OBJECT_ID işlevinin parametresi olarak eş anlamlı kullanabilirsiniz; ancak işlev, temel nesnenin değil eş anlamlının nesne kimliğini döndürür.
DDL deyiminde eş anlamlıya başvuramazsınız. Örneğin, dbo.MyProduct adlı eş anlamlıya başvuran aşağıdaki ifadeler hata oluşturur.
ALTER TABLE dbo.MyProduct
ADD NewFlag int null;
EXEC ('ALTER TABLE dbo.MyProduct
ADD NewFlag int null');
Aşağıdaki izin deyimleri, temel nesneyle değil yalnızca eş anlamlıyla ilişkilendirilir:
BAHŞETMEK
REVOKE
DENY
Eş anlamlılar şemaya bağlı değildir ve bu nedenle aşağıdaki şemaya bağlı ifade bağlamları tarafından başvurulamaz:
CHECK kısıtlamaları
Varsayılan ifadeler
Şemaya bağlı görünümler
Hesaplanan sütunlar
Kural ifadeleri
Şemaya bağlı işlevler
Şemaya bağlı işlevler hakkında daha fazla bilgi için bkz. Kullanıcı Tanımlı İşlevler (Veritabanı Altyapısı) oluşturma.
Eş Anlamlılar Hakkında Bilgi Alma
Katalog sys.synonyms görünümü, belirli bir veritabanındaki her eş anlamlı için bir giriş içerir. Bu katalog görünümü, eş anlamlının adı ve temel nesnenin adı gibi eş anlamlı meta verileri kullanıma sunar. Daha fazla bilgi için bkz . sys.synonyms (Transact-SQL).
Genişletilmiş özellikleri kullanarak, eş anlamlının özellikleri olarak açıklayıcı veya yönergeli metin, giriş maskeleri ve biçimlendirme kuralları ekleyebilirsiniz. özelliği veritabanında depolandığından, özelliğini okuyan tüm uygulamalar nesneyi aynı şekilde değerlendirebilir. Daha fazla bilgi için bkz. sp_addextendedproperty (Transact-SQL).
Bir eş anlamlının temel nesnesinin temel türünü bulmak için OBJECTPROPERTYEX işlevini kullanın. Daha fazla bilgi için bkz . OBJECTPROPERTYEX (Transact-SQL).
Örnekler
Aşağıdaki örnek, bir eş anlamlının yerel nesne olan temel nesnesinin temel türünü döndürür.
USE tempdb;
GO
CREATE SCHEMA SynSchema
GO
CREATE SYNONYM SynSchema.MyEmployee
FOR AdventureWorks2022.HumanResources.Employee;
GO
SELECT OBJECTPROPERTYEX(OBJECT_ID('SynSchema.MyEmployee'), 'BaseType') AS BaseType;
Aşağıdaki örnek, adlı Server1sunucuda bulunan uzak bir nesne olan eş anlamlının temel nesnesinin temel türünü döndürür.
EXECUTE sp_addlinkedserver Server1;
GO
CREATE SYNONYM SynSchema.MyRemoteEmployee
FOR Server1.AdventureWorks2022.HumanResources.Employee;
GO
SELECT OBJECTPROPERTYEX(OBJECT_ID('MyRemoteEmployee'), 'BaseType') AS BaseType;
GO
İlgili İçerik
Eş Anlamlılar Oluşturma
CREATE SYNONYM (Transact-SQL)
DROP SYNONYM (Transact-SQL)