sp_rename (Transact-SQL) (Svenska)
- 20/10/2020
- 6 minuter att läsa
-
- m
- c
- M
- m
- r
-
+5
Gäller för: SQL Server (alla versioner som stöds) Azure SQL Database Azure Synapse Analytics
Ändrar namnet på ett användarskapat objekt i den aktuella databasen . Detta objekt kan vara en tabell-, index-, kolumn-, aliasdatatyp eller Microsoft .NET Framework användardefinierad typ (CLR) runtime.
Obs
I Azure Synapse Analytics, sp_rename finns i förhandsgranskning och kan endast användas för att byta namn på en KOLONN i ett användarobjekt.
Varning
Ändra någon del av ett objekt namn kan bryta skript och lagrade procedurer. Vi rekommenderar att du inte använder detta uttalande för att byta namn på lagrade procedurer, utlösare, användardefinierade funktioner eller vyer; släpp istället objektet och skapa det med det nya namnet.
Syntaxkonventioner för Transact-SQL
Syntax
Argument
”objekt_namn”
Är det aktuella kvalificerade eller icke-kvalificerade namnet på användarobjektet eller datatypen. Om objektet som ska döpas om är en kolumn i en tabell måste objektnamn vara i formtabellen.kolumn eller schema.tabell.kolumn. Om objektet som ska döpas om är ett index måste objektnamnet finnas i formtabellen.index eller schema.tabell.index. Om objektet som ska bytas namn är en begränsning måste objektnamnet vara i formuläret schema. Begränsning.
Citattecken är bara nödvändiga om ett kvalificerat objekt anges. Om ett fullständigt kvalificerat namn, inklusive ett databasnamn, anges måste databasnamnet vara namnet på den aktuella databasen. objektnamn är nvarchar (776), utan standard.
”nytt_namn”
Är det nya namnet för det angivna objektet. new_name måste vara ett enhetsnamn och måste följa reglerna för identifierare. nytt namn är sysnamn, utan standard.
Obs
Triggernamn kan inte börja med # eller ##.
Värde | Beskrivning |
---|---|
KOLONN | En kolumn som ska döpas om. |
DATABAS | En användardefinierad databas. Denna objekttyp krävs när du byter namn på en databas. |
INDEX | Ett användardefinierat index. Genom att byta namn på ett index med statistik, byts namn också på statistiken automatiskt. |
OBJEKT | Ett objekt av en typ som spåras i sys.objects. OBJECT kan till exempel användas för att byta namn på objekt inklusive begränsningar (KONTROLL, UTLÄNDSK NYCKEL, PRIMÄR / UNIK KEY), användartabeller och regler. |
STATISTIK | Gäller för: SQL Server 2012 (11.x) och senare och Azure SQL Database. Statistik skapas uttryckligen av en användare eller skapas implicit med ett index. Genom att byta namn på statistiken för ett index byts namn också på indexet. |
USERDATATYPE | En CLR Användardefinierade typer som läggs till genom att köra CREATE TYPE eller sp_addtype. |
”KOLONN” Gäller: Azure Synapse Analytics
I sp_rename (förhandsvisning) ) för Azure Synapse Analytics är COLUMN en obligatorisk parameter som anger att objekttypen som ska bytas namn är en kolumn. Det är en varchar (13) utan standardvärde och måste alltid ingå i uttalandet sp_rename (preview). En kolumn kan bara döpas om det är en icke-distributionskolumn.
Returkodvärden
0 (framgång) eller ett icke-nollnummer (misslyckande)
Anmärkningar
Gäller SQL Server (alla versioner som stöds) och Azure SQL Database
sp_rename byter namn på det associerade indexet automatiskt när en PRIMÄR NYCKEL- eller UNIKT begränsning byts namn. Om ett namnändrat index är knutet till en PRIMÄR KEY-begränsning byts namn på PRIMÄR KEY-begränsning också automatiskt av sp_rename.
Gäller SQL Server (alla versioner som stöds) och Azure SQL Database
sp_rename kan användas för att byta namn på primära och sekundära XML-index.
Gäller SQL Server (alla versioner som stöds) och Azure SQL Database
Att byta namn på en lagrad procedur, funktion, vy eller trigger kommer inte att ändra namnet på motsvarande objekt antingen i definitionskolumnen i katalogvyn sys.sql_modules eller erhålls med den inbyggda funktionen OBJECT_DEFINITION. Därför rekommenderar vi att sp_rename inte används för att byta namn på dessa objekttyper. Släpp istället objektet med dess nya namn och återskapa det.
Gäller SQL Server (alla versioner som stöds), Azure SQL Database och Azure Synapse Analytics
Byta namn på ett objekt som en tabell eller kolumnen inte automatiskt byta namn på referenser till det objektet.Du måste ändra alla objekt som hänvisar till det bytte namn på objektet manuellt. Om du till exempel byter namn på en tabellkolumn och den kolumnen refereras till i en utlösare måste du ändra utlösaren så att den återspeglar det nya kolumnnamnet. Använd sys.sql_expression_dependences för att lista beroenden på objektet innan du byter namn på det.
Gäller SQL Server (alla versioner som stöds), Azure SQL Database och Azure Synapse Analytics
Du kan ändra namnet på ett objekt eller datatyp endast i den aktuella databasen. Namnen på de flesta systemdatatyper och systemobjekt kan inte ändras.
Behörigheter
För att byta namn på objekt, kolumner och index krävs ALTER-behörighet för objektet. För att byta namn på användartyper krävs CONTROL-behörighet för typen. För att byta namn på en databas krävs medlemskap i sysadmin- eller dbcreator-fixerade serverroller
Exempel
A. Byta namn på en tabell
Följande exempel byter namn på SalesTerritory
-tabellen till SalesTerr
i Sales
schema.
B. Byta namn på en kolumn
Följande exempel byter namn på TerritoryID
kolumnen i SalesTerritory
-tabellen till TerrID
.
C. Byta namn på ett index
Följande exempel byter namn på IX_ProductVendor_VendorID
index till IX_VendorID
.
D . Byta namn på en aliasdatatyp
Följande exempel byter namn på Phone
aliasdatatyp till Telephone
.
E. Byta namn på begränsningar
Följande exempel byter namn på en PRIMÄR KEY-begränsning, en CHECK-begränsning och en UTLÄNDSK NYCKEL-begränsning. När du byter namn på en begränsning måste schemat som begränsningen tillhör anges.
F. Byta namn på statistik
Följande exempel skapar ett statistikobjekt med namnet contactMail1 och byter namn på statistiken till NewContact genom att använda sp_rename. När du byter namn på statistik måste objektet anges i formatet schema.table.statistics_name.
Exempel: Azure Synapse Analytics
G. Byta namn på en kolumn
Följande exempel byter namn på c1
kolumnen i table1
-tabellen till col1
.