Aracılığıyla paylaş


(Transact-SQL) SYNONYM CREATE

Yeni veri türünün eşanlamlısı olarak oluşturur.

Topic link iconTransact-SQL sözdizimi kuralları

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