synonym (Transact-sql) oluştur

Yeni eş oluşturur.

Konu bağlantısı simgesi Transact-SQL Sözdizim Kuralları

Sözdizimi

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
    Eşanlamlı oluşturulduğu şema belirtir. Eğer schemabelirtilmemiş, SQL Servergeçerli kullanıcı varsayılan şema kullanır.

  • synonym_name
    Yeni eş addır.

  • server_name
    Sunucu adı hangi temel nesne üzerinde yer almaktadır.

  • database_name
    Temel nesne bulunduğu veritabanı adıdır. Eğer database_namebelirtilmemişse, geçerli veritabanı adını kullanılır.

  • schema_name_2
    Temel nesne şema addır. Eğer schema_namegeçerli kullanıcı varsayılan şema kullanılan belirtilmemiş.

  • object_name
    Eşanlamlı başvuran temel nesne addır.

Açıklamalar

Temel nesne eşanlamlı yok zaman oluşturmak. SQL Serverçalışma zamanında temel nesnenin varlığını denetler.

Aşağıdaki nesne türlerini eşanlamlıları oluşturulabilir:

Derleme (clr) depolanan yordamı

Derleme (clr) tablo değerli işlev

Derleme (clr) skalar fonksiyon

Derleme toplama (clr) toplama işlevleri

Çoğaltma filtre yordamı

Genişletilmiş saklı yordam

sql skalar fonksiyon

sql tablo değerli fonksiyon

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

İşlevi temel nesneler için four-part adları desteklenmez.

Eşanlamlıları oluşturulabilir, düştü ve dinamik sql içinde başvurulan.

İzinler

Verilen şemada eşanlamlısı oluşturmak için bir kullanıcının create synonym izni olmalıdır ve ya da kendi şema veya var şema alter izni.

create synonym izni grantable izni yok.

[!NOT]

Temel nesne üzerinde denetleme tüm izni çalıştırma kadar ertelenmiş çünkü başarıyla synonym create deyimi derlemek için temel nesne izni gerekmez.

Örnekler

A.Yerel bir nesne için bir eşanlamlı oluşturma

Aşağıdaki örnek, ilk kez bir eşanlamlı temel nesne oluşturur Productde AdventureWorks2012veritabanı ve eşanlamlı sorgular.

USE tempdb;
GO
-- Create a synonym for the Product table in AdventureWorks2012.
CREATE SYNONYM MyProduct
FOR AdventureWorks2012.Production.Product;
GO

-- Query the Product table by using the synonym.
USE tempdb;
GO
SELECT ProductID, Name 
FROM MyProduct
WHERE ProductID < 5;
GO

USE tempdb;
GO
-- Create a synonym for the Product table in AdventureWorks2012.
CREATE SYNONYM MyProduct
FOR AdventureWorks2012.Production.Product;
GO

-- Query the Product table by using the synonym.
USE tempdb;
GO
SELECT ProductID, Name 
FROM MyProduct
WHERE ProductID < 5;
GO

Sonuç kümesi buradadır.

-----------------------

ProductID Name

----------- --------------------------

1 Adjustable Race

2 Bearing Ball

3 BB Ball Bearing

4 Headset Ball Bearings

(4 row(s) affected)

B.Uzak nesne için bir eşanlamlı oluşturma

Aşağıdaki örnekte, temel nesne, Contact, adlı bir uzak sunucuda bulunan Server_Remote.

EXEC sp_addlinkedserver Server_Remote;
GO
USE tempdb;
GO
CREATE SYNONYM MyEmployee FOR Server_Remote.AdventureWorks2012.HumanResources.Employee;
GO

EXEC sp_addlinkedserver Server_Remote;
GO
USE tempdb;
GO
CREATE SYNONYM MyEmployee FOR Server_Remote.AdventureWorks2012.HumanResources.Employee;
GO

C.Kullanıcı tanımlı bir işlev için bir eşanlamlı oluşturma

Aşağıdaki örnek adında bir işlev oluşturur dbo.OrderDozensipariş miktarlarının bile düzine birimlerine artıracağını. Eşanlamlı sonra örnek oluşturur dbo.CorrectOrderiçin dbo.OrderDozenişlevi.

-- 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

-- 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

Ayrıca bkz.

Başvuru

synonym (Transact-sql) bırak

grant (Transact-sql)

eventdata (Transact-sql)