Wat is het nut van SYNONYM?

Wat is het gebruik van SYNONYM in SQL Server 2008?


Antwoord 1, autoriteit 100%

In sommige bedrijfssystemen kunt u te maken krijgen met objecten op afstand waarover u geen controle heeft. Bijvoorbeeld een database die wordt onderhouden door een andere afdeling of team.

Synoniemen kunnen u helpen de naam en locatie van het onderliggende object los te koppelen van uw SQL-code. Op die manier kunt u coderen tegen een synoniemtabel, zelfs als de gewenste tabel naar een nieuwe server/database is verplaatst of hernoemd.

Ik zou bijvoorbeeld een vraag als deze kunnen schrijven:

insert into MyTable
(...)
select ... 
from remoteServer.remoteDatabase.dbo.Employee

maar als de server, of database, schema of tabel verandert, heeft dat invloed op mijn code. In plaats daarvan kan ik een synoniem voor de externe server maken en in plaats daarvan het synoniem gebruiken:

insert into MyTable
(...)
select ... 
from EmployeeSynonym

Als het onderliggende object van locatie of naam verandert, hoef ik alleen mijn synoniem bij te werken om naar het nieuwe object te verwijzen.

http://www.mssqltips.com/sqlservertip/1820/use-synonyms-to-abstract-the-location-of-sql-server-database-objects/


Antwoord 2, autoriteit 20%

Synoniemen bieden een geweldige abstractielaag, waardoor we vriendelijke en/of lokale namen kunnen gebruiken voor uitgebreid benoemde of externe tabellen, weergaven, procedures en functies.

Bijvoorbeeld

Bedenk dat u de server1en dbschema als ABCen de tabelnaam als Employeehebt en nu moet u toegang krijgen tot de Employeetabel in uw Server2om een ​​querybewerking uit te voeren.

Dus je moet gebruiken zoals Server1.ABC.Employeehet onthult alles ServerName, SchemaName en TableName.

In plaats hiervan kunt u een synoniemlink maken Create Synonym EmpTable for Server1.ABC.Employee

Dus je hebt toegang zoals Select * from Peoples p1 inner join EmpTable emp where emp.Id=p1.ID

Dus het biedt de voordelen van Abstractie, gemak van verandering, schaalbaarheid.

Als u later de servernaam of het schema of de tabelnaam wilt wijzigen, hoeft u alleen het synoniem te wijzigen en hoeft u ze niet allemaal te doorzoeken en te vervangen.

Als je het hebt gebruikt, zul je het echte voordeel van synoniem voelen. Het kan ook worden gecombineerd met een gekoppelde server en biedt meer voordelen voor ontwikkelaars.


Antwoord 3, autoriteit 7%

Een voorbeeld van het nut hiervan
zou kunnen zijn als u een opgeslagen procedure had
op een gebruikersdatabase die nodig was om
toegang krijgen tot een klantentabel op een andere
productie server. er van uitgaande dat je
de opgeslagen procedure gemaakt in de
database-gebruikers, wilt u misschien instellen:
een synoniem op, zoals het volgende:
GEBRUIK Gebruikers; GA SYNONYM-klanten aanmaken
VOOR Offsite01.Productie.dbo.Klanten;
GO

Nu bij het schrijven van de opgeslagen procedure
in plaats van dat op te moeten schrijven
volledige alias elke keer dat u toegang hebt
de tabel kunt u gewoon de alias gebruiken
Klanten. Verder, als je ooit
verander de locatie of de naam van de
productie database locatie alles wat je
hoeft te doen is een synoniem wijzigen
in plaats van alle
opgeslagen procedures die verwijzen naar de
oude server.

Van: http://blog.sqlauthority.com/2008/01/07/sql-server-2005-introduction-and-explanation-to-synonym-helpful-t-sql- functie-voor-ontwikkelaar/


Antwoord 4, autoriteit 7%

Het lijkt (van hier) een alias te maken voor een ander tabel, zodat u er gemakkelijk naar kunt verwijzen. Vind ik leuk als

select * from table longname as ln

maar permanent en alomtegenwoordig.

Bewerken:werkt voor door de gebruiker gedefinieerde functies, lokale en externe objecten, niet alleen voor tabellen.


Antwoord 5, autoriteit 6%

Ik ben al heel lang Oracle-ontwikkelaar en heb de sprong naar SQL Server gemaakt.

Maar een ander goed gebruik voor synoniemen is tijdens de ontwikkelingscyclus. Als u meerdere ontwikkelaars hebt die hetzelfde schema wijzigen, kunt u een synoniem gebruiken om naar uw eigen schema te verwijzen in plaats van de “productie”-tabel rechtstreeks aan te passen. Zo kunt u uw ding doen en worden andere ontwikkelaars niet beïnvloed terwijl u wijzigingen aanbrengt en debugt.

Ik ben blij deze te zien in SQL Server 2008…


Antwoord 6, autoriteit 6%

Een synoniem is een database-object dat de volgende doelen dient:

  • Biedt een alternatieve naam voor een ander databaseobject, het basisobject genoemd, dat op een lokale of externe server kan bestaan.
  • Biedt een abstractielaag die een clienttoepassing beschermt tegen wijzigingen in de naam of locatie van het basisobject.

Ik heb de eerste nog nooit nodig gehad, maar de tweede is erg handig.

msdn is je vriend


Antwoord 7, autoriteit 4%

Je kunt in feite een synoniem maken in een lege database en het verwijzen naar een object in een andere database, en het zo laten werken zoals het hoort, ook al staat het in een volledig lege database (naast het synoniem dat je hebt gemaakt natuurlijk) .

Other episodes