sql-server - sql server sp_rename table name
Come rinominare una tabella in SQL Server? (4)
La query SQL
che ho usato è:
ALTER TABLE oldtable RENAME TO newtable;
Ma mi dà un errore.
Server: messaggio 156, livello 15, stato 1, riga 1
Sintassi errata vicino alla parola chiave "A".
Niente ha funzionato da qui proposto .. Quindi, ho appena esaminato i dati in una nuova tabella
SELECT *
INTO [acecodetable].['PSCLineReason']
FROM [acecodetable].['15_PSCLineReason'];
forse sarà utile per qualcuno ..
Nel mio caso non ha riconosciuto il nuovo schema anche il dbo era il proprietario ..
AGGIORNARE
EXECUTE sp_rename N'[acecodetable].[''TradeAgreementClaim'']', N'TradeAgreementClaim';
Ha funzionato per me L'ho trovato dallo script generato automaticamente durante l'aggiornamento del PK per una delle tabelle. In questo modo ha riconosciuto anche il nuovo schema ..
Nome tabella
sp_rename "db_name.old_table_name", "new_table_name"
Colonna
sp_rename "db_name.old_table_name.name", "userName", "COLUMN"
Indice
sp_rename "db_name.old_table_name.id", "product_ID", "INDEX"
disponibile anche per statica e tipi di dati
Per rinominare una tabella in SQL Server, utilizzare il comando sp_rename
:
exec sp_rename 'schema.old_table_name', 'new_table_name'
Quando si utilizza sp_rename che funziona come nelle risposte precedenti, controlla anche quali oggetti sono interessati dopo la ridenominazione, facendo riferimento a quella tabella, perché è necessario modificare anche quelli
Ho preso un esempio di codice per le dipendenze da tavolo sul blog di Pinal Dave here
USE AdventureWorks
GO
SELECT
referencing_schema_name = SCHEMA_NAME(o.SCHEMA_ID),
referencing_object_name = o.name,
referencing_object_type_desc = o.type_desc,
referenced_schema_name,
referenced_object_name = referenced_entity_name,
referenced_object_type_desc = o1.type_desc,
referenced_server_name, referenced_database_name
--,sed.* -- Uncomment for all the columns
FROM
sys.sql_expression_dependencies sed
INNER JOIN
sys.objects o ON sed.referencing_id = o.[object_id]
LEFT OUTER JOIN
sys.objects o1 ON sed.referenced_id = o1.[object_id]
WHERE
referenced_entity_name = 'Customer'
Quindi, tutti questi oggetti dipendenti devono essere aggiornati anche
Oppure, se possibile, usa qualche componente aggiuntivo, alcuni di essi hanno funzionalità per rinominare l'oggetto e anche tutti gli oggetti dipendenti