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