Udostępnij za pośrednictwem


Za pomocą synonimy (aparat bazy danych)

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

WYBIERZ

WSTAW

AKTUALIZACJA

USUŃ

WYKONANIE

Sub-selects

Pracując z synonimy w kontekście wcześniej stwierdzono, dotyczy obiekt podstawowy.Na przykład jeśli synonim odwołuje się do obiekt podstawowy, który jest tabelą, wstawia wiersz do synonimem są faktycznie wstawiania wiersza do tabela występującej.

Ostrzeżenie

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

Synonim można wykorzystać jako parametr funkcja OBJECT_ID; Jednakże funkcja zwraca identyfikator obiektu synonimem obiekt podstawowy.

Nie można odwołać synonim w instrukcja DDL.Na przykład, następujące instrukcje, których odniesienia o nazwie synonim 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 podstawowy:

UDZIEL

ODMAWIANIE

ODWOŁYWANIE

 

Synonimy nie są związane z schematu i dlatego nie można odwoływać się następujących kontekstów wyrażenie związanych ze schematem:

Ograniczenia CHECK

Kolumny obliczane

Wyrażeń domyślnych

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 funkcji zdefiniowanej 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 AdventureWorks2008R2.Person.AddressType;
GO

Poniższy przykład wstawia wiersz do tabela bazowa, który odwołuje się MyAddressType synonim.

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

Poniższy przykład demonstruje, jak można się odwoływać synonim SQL dynamic.

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