(Transact-SQL) SYNONYM CREATE
Yeni veri türünün eşanlamlısı olarak oluşturur.
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
}
Bağımsız değişkenler
schema_name_1
Veri türünün eşanlamlısı oluşturulduğu şema belirtir.If schema belirtilmemişse, SQL Server Geçerli kullanıcının varsayılan şemayı kullanır.synonym_name
Yeni veri türünün eşanlamlısı adıdır.server_name
Sunucuyu adı temel nesne bulunur.database_name
Temel Nesne bulunduğu veritabanı adıdır.If database_name belirtilmemişse, geçerli veritabanının adı kullanılır.schema_name_2
Adı şemasının sürümü temel nesne.If schema_name Geçerli kullanıcının varsayılan şemayı kullanılan, belirtilmemiş.object_name
Veri türünün eşanlamlısı başvuran temel nesne adıdır.
Remarks
The base object need not exist at synonym create time.SQL Server checks for the existence of the base object at run time.
Eşanlamlıları aşağıdaki nesne türleri oluşturulabilir:
Derleme (CLR) saklı yordam |
Derleme (CLR) tablo değerli işlev |
Derleme (CLR) skaler işlev |
Derleme topluluğu (CLR) toplamak işlevleri |
Çoğaltma filtre yordamını |
Genişletilmiş saklı yordam |
SQL skaler işlev |
SQL tablo değerli işlev |
SQL satır içi tablo değerli işlev |
SQL saklı yordamı |
Görünümü |
Tablo1 (Kullanıcı tanımlı) |
1 Yerel ve genel geçici tablolar içerir.
Four-Part işlev temel nesne adları desteklenmez.
Eşanlamlıları oluşturulan, iptal ve olması dinamik SQL başvuruyor.
İzinler
Belirli bir şemada veri türünün eşanlamlısı oluşturmak için , bir kullanıcının CREATE SYNONYM iznine sahip olması gerekir ve bu da şema veya sahip ALTER SCHEMA iznine sahip.
CREATE SYNONYM izni grantable bir izindir.
Not
Temel nesne üzerinde denetleme tüm iznine, çalıştırıncaya kadar ertelenmiş çünkü başarıyla SYNONYM CREATE deyim derlemek için temel nesne üzerindeki izin almanız saat.
Örnekler
C.Veri türünün eşanlamlısı için bir yerel grup ilkesi nesnesi oluşturma
Aşağıdaki örnek için temel nesne veri türünün eşanlamlısı ilk oluşturur. Product içinde AdventureWorks Veritabanı ve daha sonra veri türünün eşanlamlısı sorgular.
USE tempdb;
GO
-- Create a synonym for the Product table in AdventureWorks.
CREATE SYNONYM MyProduct
FOR AdventureWorks.Production.Product;
GO
-- Query the Product table by using the synonym.
USE tempdb;
GO
SELECT ProductID, Name
FROM MyProduct
WHERE ProductID < 5;
GO
Here is the result set.
-----------------------
Productıd adı
----------- --------------------------
1 Ayarlanabilir yarış
2 Boşluğunu top
3 BB top boşluğunu
4 Kulaklıklı mikrofon seti top Bearings
(4 satırları etkilenen)
b.Veri türünün eşanlamlısı için uzak nesne oluşturma
Aşağıdaki örnekte, temel, nesne Contact, adlı bir uzak sunucuda bulunur. Server_Remote.
EXEC sp_addlinkedserver Server_Remote;
GO
USE tempdb;
GO
CREATE SYNONYM MyEmployee FOR Server_Remote.AdventureWorks.HumanResources.Employee;
GO
c.Kullanıcı tanımlı bir işlev için veri türünün eşanlamlısı olarak oluşturma
Aşağıdaki örnek, adında bir işlev oluşturur. dbo.OrderDozen hatta bir düzine bir birim için sipariş miktarlarının artırır. Örnek sonra veri türünün eşanlamlısı oluşturur. dbo.CorrectOrder için dbo.OrderDozen işlev.
-- 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
See Also