sp_rename (Transact-SQL) (Italiano)

  • 10/14/2020
  • 6 minuti per la lettura
    • m
    • c
    • M
    • m
    • r
    • +5

Si applica a: SQL Server (tutte le versioni supportate) Database SQL di Azure Azure Synapse Analytics

Modifica il nome di un oggetto creato dallutente nel database corrente . Questo oggetto può essere una tabella, un indice, una colonna, un tipo di dati alias o un tipo definito dallutente CLR (Common Language Runtime) di Microsoft .NET Framework.

Nota

In Azure Synapse Analytics, sp_rename è in Anteprima e può essere utilizzato solo per rinominare una COLUMN in un oggetto utente.

Attenzione

Modifica di qualsiasi parte di un oggetto name può rompere script e stored procedure. Si consiglia di non utilizzare questa istruzione per rinominare stored procedure, trigger, funzioni definite dallutente o viste; invece, rilascia loggetto e ricrealo con il nuovo nome.

Convenzioni di sintassi Transact-SQL

Sintassi

Argomenti

“nome_oggetto”
È il nome qualificato o non qualificato corrente delloggetto utente o del tipo di dati. Se loggetto da rinominare è una colonna in una tabella, object_name deve essere nel formato table.column o schema.table.column. Se loggetto da rinominare è un indice, object_name deve essere nel formato table.index o schema.table.index. Se loggetto da rinominare è un vincolo, object_name deve essere nella forma schema.constraint.

Le virgolette sono necessarie solo se viene specificato un oggetto qualificato. Se viene fornito un nome completo, incluso un nome database, il nome database deve essere il nome del database corrente. object_name è nvarchar (776), senza alcun valore predefinito.

“new_name”
È il nuovo nome per loggetto specificato. new_name deve essere un nome composto da una parte e deve seguire le regole per gli identificatori. newname è sysname, senza alcun valore predefinito.

Nota

I nomi dei trigger non possono iniziare con # o ##.

Valore Descrizione
COLUMN Una colonna da rinominare.
DATABASE Un database definito dallutente. Questo tipo di oggetto è richiesto quando si rinomina un database.
INDEX Un indice definito dallutente. Rinominare un indice con le statistiche, rinomina automaticamente anche le statistiche.
OBJECT Un elemento di un tipo tracciato in sys.objects. Ad esempio, OBJECT potrebbe essere utilizzato per rinominare oggetti inclusi vincoli (CHECK, FOREIGN KEY, PRIMARY / UNIQUE KEY), tabelle utente e regole.
STATISTICHE Si applica a: SQL Server 2012 (11.x) e versioni successive e database SQL di Azure.
Statistiche create esplicitamente da un utente o create implicitamente con un indice. La ridenominazione delle statistiche di un indice rinomina automaticamente anche lindice.
USERDATATYPE Tipi CLR definiti dallutente aggiunti eseguendo CREATE TYPE o sp_addtype.

“COLUMN” Si applica a: Azure Synapse Analytics
In sp_rename (anteprima ) per Azure Synapse Analytics, COLUMN è un parametro obbligatorio che specifica che il tipo di oggetto da rinominare è una colonna. È un varchar (13) senza valore predefinito e deve essere sempre incluso nellistruzione sp_rename (anteprima). Una colonna può essere rinominata solo se non è una colonna di distribuzione.

Valori del codice di ritorno

0 (successo) o un numero diverso da zero (errore)

Note

Si applica a SQL Server (tutte le versioni supportate) e al database SQL di Azure
sp_rename rinomina automaticamente lindice associato ogni volta che viene rinominato un vincolo PRIMARY KEY o UNIQUE. Se un indice rinominato è legato a un vincolo PRIMARY KEY, anche il vincolo PRIMARY KEY viene automaticamente rinominato sp_rename.

Si applica a SQL Server (tutte le versioni supportate) e al database SQL di Azure
è possibile utilizzare sp_rename per rinominare gli indici XML primari e secondari.

Si applica a SQL Server (tutte le versioni supportate) e al database SQL di Azure
Rinominare una stored procedure, una funzione, una vista o un trigger non cambierà il nome del corrispondente oggetto nella colonna della definizione della vista del catalogo sys.sql_modules o ottenuto utilizzando la funzione incorporata OBJECT_DEFINITION. Pertanto, si consiglia di non utilizzare sp_rename per rinominare questi tipi di oggetti. Invece, rilascia e ricrea loggetto con il suo nuovo nome.

Si applica a SQL Server (tutte le versioni supportate), al database SQL di Azure e ad Azure Synapse Analytics
Ridenominazione di un oggetto come una tabella o colonna non rinominerà automaticamente i riferimenti a quelloggetto.È necessario modificare manualmente tutti gli oggetti che fanno riferimento alloggetto rinominato. Ad esempio, se si rinomina una colonna della tabella e tale colonna è referenziata in un trigger, è necessario modificare il trigger per riflettere il nuovo nome della colonna. Usa sys.sql_expression_dependencies per elencare le dipendenze sulloggetto prima di rinominarlo.

Si applica a SQL Server (tutte le versioni supportate), Database SQL di Azure e Azure Synapse Analytics
È possibile modificare il nome di un oggetto o il tipo di dati solo nel database corrente. I nomi della maggior parte dei tipi di dati di sistema e degli oggetti di sistema non possono essere modificati.

Autorizzazioni

Per rinominare oggetti, colonne e indici, è necessaria lautorizzazione ALTER per loggetto. Per rinominare i tipi di utente, è necessaria lautorizzazione CONTROL per il tipo. Per rinominare un database, è necessaria lappartenenza ai ruoli predefiniti del server sysadmin o dbcreator

Esempi

A. Ridenominazione di una tabella

Lesempio seguente rinomina la tabella SalesTerritory in SalesTerr nel Sales schema.

B. Ridenominazione di una colonna

Lesempio seguente rinomina la colonna TerritoryID nella tabella SalesTerritory in TerrID.

C. Ridenominazione di un indice

Lesempio seguente rinomina lindice IX_ProductVendor_VendorID in IX_VendorID.

D . Ridenominazione di un tipo di dati alias

Lesempio seguente rinomina il tipo di dati alias Phone in Telephone.

E. Ridenominazione dei vincoli

I seguenti esempi rinominano un vincolo PRIMARY KEY, un vincolo CHECK e un vincolo FOREIGN KEY. Quando si rinomina un vincolo, è necessario specificare lo schema a cui appartiene il vincolo.

F. Ridenominazione delle statistiche

Lesempio seguente crea un oggetto delle statistiche denominato contactMail1 e quindi rinomina la statistica in NewContact utilizzando sp_rename. Quando si rinominano le statistiche, loggetto deve essere specificato nel formato schema.table.statistics_name.

Esempi: Azure Synapse Analytics

G. Ridenominazione di una colonna

Lesempio seguente rinomina la colonna c1 nella tabella table1 in col1.

Vedi anche

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *