Utilizzo degli identificatori come nomi di oggetti

Il nome completo di un oggetto è composto da quattro identificatori, ovvero il nome del server, il nome del database, il nome dello schema e il nome dell'oggetto, visualizzati nel formato seguente:

server_name**.[database_name].[schema_name].**object_name

| database_name**.[schema_name].**object_name

| schema_name**.**object_name

| object_name

I nomi del server, del database e del proprietario sono detti qualificatori del nome oggetto. Quando si fa riferimento a un oggetto, non è necessario specificare il server, il database e il proprietario, ma è possibile ometterli contrassegnandone la posizione con un punto. Le forme valide dei nomi di oggetto sono le seguenti:

  • server_name**.database_name.schema_name.**object_name

  • server_name**.database_name..**object_name

  • server_name**..schema_name.**object_name

  • server_name**...**object_name

  • database_name**.schema_name.**object_name

  • database_name**..**object_name

  • schema_name**.**object_name

  • object_name

Un nome di oggetto che include le quattro parti è definito come un nome completo. A ogni oggetto creato in MicrosoftSQL Server deve essere assegnato un nome completo univoco. Ad esempio, in uno stesso database possono coesistere due tabelle denominate xyz, a condizione che il proprietario sia diverso.

Per la maggior parte dei riferimenti a oggetti vengono utilizzati nomi composti da tre parti. Il server_name predefinito è il server locale. Il database_name predefinito è il database corrente della connessione. Lo schema_name predefinito è lo schema predefinito dell'utente che ha inviato l'istruzione. A meno che non sia stato configurato diversamente, lo schema predefinito dei nuovi utenti è lo schema dbo.

I nomi composti da quattro parti vengono in genere utilizzati per le query distribuite e per le chiamate a stored procedure remote. Il formato utilizzato è il seguente:

  • linkedserver**.catalogo.schema.**object_name

Nella tabella seguente vengono illustrati i nomi delle parti e la relativa descrizione.

Parte del nome

Descrizione

linkedserver

Nome del server collegato contenente l'oggetto a cui viene fatto riferimento nella query distribuita.

catalogo

Nome del catalogo contenente l'oggetto a cui viene fatto riferimento nella query distribuita. Se si esegue una query su un database SQL Server, il catalogo corrisponde al nome del database.

schema

Nome dello schema contenente l'oggetto a cui viene fatto riferimento nella query distribuita.

object_name

Nome di oggetto o nome di tabella.

Nel caso di query distribuite, la parte del nome relativa al server fa riferimento a un server collegato. Per server collegato si intende un server il cui nome è stato definito tramite sp_addlinkedserver. Il server collegato identifica un provider OLE DB e un'origine dei dati OLE DB in grado di restituire un recordset utilizzabile da MicrosoftSQL Server nell'ambito di un'istruzione Transact-SQL.

Per determinare quali componenti dell'origine dei dati OLE DB vengono utilizzati per le parti del nome "catalog" e "schema", vedere la documentazione relativa al provider OLE DB specificato per il server collegato. Se il server collegato è un computer che esegue un'istanza di SQL Server, il nome del catalogo corrisponde al database contenente l'oggetto, mentre lo schema corrisponde al proprietario dell'oggetto. Per ulteriori informazioni sui nomi composti da quattro parti e sulle query distribuite, vedere Query distribuite.

Nel caso di chiamate a procedure remote, la parte del nome relativa al server fa riferimento a un server remoto. Un server remoto, specificato tramite sp_addserver, è un'istanza di SQL Server a cui si accede tramite il server locale. È possibile eseguire stored procedure nel server remoto specificandone il nome nel formato seguente:

  • server**.database.schema_name.**procedura

Se si utilizza una stored procedure remota, è necessario specificare tutte e quattro le parti del nome. Per ulteriori informazioni sui server remoti, vedere Configurazione di server remoti.

Riferimenti a colonne tramite gli identificatori

In una tabella o vista è necessario che i nomi di colonna siano univoci. È possibile utilizzare fino a tre prefissi per la specifica delle colonne di una query nella quale più tabelle a cui si fa riferimento possono contenere una colonna con lo stesso nome. Sono validi i formati seguenti:

  • database_name**.schema_name.object_name.**column_name

  • database_name**..**object_name.column_name

  • schema_name.object_name**.**column_name

  • object_name**.**column_name

Riferimenti alle proprietà di tipi di colonne definiti dall'utente

Per fare riferimento a tipi di colonne definiti dall'utente, è possibile utilizzare il punto (.) come separatore tra il nome di colonna e il nome di proprietà. Quando si fa riferimento ai nomi di proprietà, è inoltre possibile fare riferimento agli identificatori di tabella o di vista, ma non agli identificatori di database o di schema. Sono validi i formati seguenti:

  • column_name**.property_name1.**property_name2[…]

  • object_name**.column_name.property_name1.**property_name2[…]