Udostępnij za pośrednictwem


Za pomocą synonimy (aparat bazy danych)

Można użyć synonimów zamiast ich odwołania obiekt bazowy w kilku instrukcji SQL i kontekstów wyrażenie.Poniższa tabela zawiera listę tych instrukcji i kontekstów wyrażenie:

WYBIERZ OPCJĘ

Aby wyświetlić właściwości operator plan wykonania

AKTUALIZACJA

USUWANIE

wykonać

Sub-selects

Podczas pracy z synonimy w kontekście, podane wcześniej występuje w obiekt bazowy.Na przykład wstawić wiersz do synonimem synonim odwołuje się do podstawowego obiektu, który jest tabelą, faktycznie jest wstawiany wiersz do tabela, do którego istnieje odwołanie.

Uwaga

Nie można odwoływać się synonimu, który znajduje się serwer połączony.

Można użyć synonim jako parametr do funkcji OBJECT_ID; jednak funkcja ta zwraca identyfikator synonimu, obiekt bazowy.

Nie można odwoływać się do synonim w instrukcja DDL.Na przykład poniższe instrukcje, które odwołać synonim o nazwie dbo.MyProduct, generować błędy:

ALTER TABLE dbo.MyProduct
   ADD NewFlag int null;
EXEC ('ALTER TABLE dbo.MyProduct
   ADD NewFlag int null');

Poniższe instrukcje uprawnień są skojarzone tylko z synonimem i obiekt bazowy:

cntr_value

ODMAWIANIE

Nazwa wystąpienie określonego licznika.

 

Synonimy nie są związanych ze schematem i dlatego nie może odwoływać się następujące konteksty związanych ze schematem wyrażenie:

Ograniczenia CHECK

Kolumny obliczane

Domyślne wyrażeń

Wyrażenia reguły

Widoki związanych ze schematem

Funkcji związanych ze schematem

Aby uzyskać więcej informacji na temat funkcji związanych ze schematem zobacz Tworzenie funkcje zdefiniowane przez użytkownika (aparat bazy danych).

Przykłady

Poniższy przykład tworzy synonimu, który będzie używany w kolejnych przykładów.

USE tempdb;
GO
CREATE SYNONYM MyAddressType
FOR AdventureWorks.Person.AddressType;
GO

W poniższym przykładzie wstawia wiersz do tabela bazowa, do której odwołuje się MyAddressType synonim.

USE tempdb;
GO
INSERT INTO MyAddressType (Name)
VALUES ('Test');
GO

Poniższy przykład ilustruje, jak jest to synonim można odwoływać się do dynamicznych instrukcji SQL.

USE tempdb;
GO
EXECUTE ('SELECT Name FROM MyAddressType');
GO