sp_rename (Transact-SQL)
- 14/10/2020
- 6 minuten om te lezen
-
- m
- c
- M
- m
- r
-
+5
Is van toepassing op: SQL Server (alle ondersteunde versies) Azure SQL Database Azure Synapse Analytics
Wijzigt de naam van een door een gebruiker gemaakt object in de huidige database . Dit object kan een tabel, index, kolom, aliasgegevenstype of door de gebruiker gedefinieerd type Microsoft .NET Framework Common Language Runtime (CLR) zijn.
Opmerking
In Azure Synapse Analytics, sp_rename staat in Preview en kan alleen worden gebruikt om de naam van een COLUMN in een gebruikersobject te wijzigen.
Let op
Een deel van een object wijzigen naam kan scripts en opgeslagen procedures breken. We raden u aan deze verklaring niet te gebruiken om opgeslagen procedures, triggers, door de gebruiker gedefinieerde functies of weergaven te hernoemen; laat in plaats daarvan het object vallen en maak het opnieuw met de nieuwe naam.
Transact-SQL-syntaxisconventies
Syntaxis
Argumenten
“objectnaam”
Is de huidige gekwalificeerde of niet-gekwalificeerde naam van het gebruikersobject of gegevenstype. Als het te hernoemen object een kolom in een tabel is, moet object_name de vorm table.column of schema.table.column hebben. Als het te hernoemen object een index is, moet objectnaam de vorm table.index of schema.table.index hebben. Als het object waarvan de naam moet worden gewijzigd een beperking is, moet objectnaam de vorm schema.constraint hebben.
Aanhalingstekens zijn alleen nodig als een gekwalificeerd object is opgegeven. Als een volledig gekwalificeerde naam, inclusief een databasenaam, wordt opgegeven, moet de databasenaam de naam zijn van de huidige database. objectnaam is nvarchar (776), zonder standaard.
“nieuwe_naam”
Is de nieuwe naam voor het opgegeven object. nieuwe_naam moet een eendelige naam zijn en moet de regels voor identifiers volgen. newname is sysname, zonder standaard.
Opmerking
Triggernamen kunnen niet beginnen met # of ##.
Waarde | Beschrijving |
---|---|
COLUMN | Een kolom die moet worden hernoemd. |
DATABASE | Een door de gebruiker gedefinieerde database. Dit objecttype is vereist bij het hernoemen van een database. |
INDEX | Een door de gebruiker gedefinieerde index. Het hernoemen van een index met statistieken, hernoemt ook automatisch de statistieken. |
OBJECT | Een item van een type dat wordt gevolgd in sys.objects. OBJECT kan bijvoorbeeld worden gebruikt om objecten te hernoemen, inclusief beperkingen (CHECK, FOREIGN KEY, PRIMARY / UNIQUE KEY), gebruikerstabellen en regels. |
STATISTICS | Van toepassing op: SQL Server 2012 (11.x) en hoger en Azure SQL Database. Statistieken die expliciet door een gebruiker zijn gemaakt of impliciet met een index zijn gemaakt. Het hernoemen van de statistieken van een index hernoemt automatisch ook de index. |
USERDATATYPE | Een door de gebruiker gedefinieerde CLR-typen toegevoegd door CREATE TYPE of sp_addtype uit te voeren. |
“COLUMN” Van toepassing op: Azure Synapse Analytics
In sp_rename (preview ) voor Azure Synapse Analytics is COLUMN een verplichte parameter die specificeert dat het objecttype dat moet worden hernoemd een kolom is. Het is een varchar (13) zonder standaardwaarde en moet altijd worden opgenomen in de instructie sp_rename (preview). Een kolom kan alleen hernoemd worden als het een niet-distributiekolom is.
Retourcodewaarden
0 (geslaagd) of een niet-nul getal (fout)
Opmerkingen
Is van toepassing op SQL Server (alle ondersteunde versies) en Azure SQL Database
sp_rename hernoemt automatisch de bijbehorende index wanneer een PRIMAIRE SLEUTEL of UNIEKE beperking wordt hernoemd. Als een hernoemde index is gekoppeld aan een PRIMARY KEY-beperking, wordt de PRIMARY KEY-beperking ook automatisch hernoemd naar sp_rename.
Is van toepassing op SQL Server (alle ondersteunde versies) en Azure SQL Database
sp_rename kan worden gebruikt om de naam van primaire en secundaire XML-indexen te wijzigen.
Is van toepassing op SQL Server (alle ondersteunde versies) en Azure SQL Database
Als u een opgeslagen procedure, functie, weergave of trigger hernoemt, wordt de naam van de overeenkomstige object ofwel in de definitiekolom van de sys.sql_modules catalogusweergave of verkregen met behulp van de ingebouwde functie OBJECT_DEFINITION. Daarom raden we aan om sp_rename niet te gebruiken om deze objecttypen te hernoemen. In plaats daarvan kunt u het object met de nieuwe naam neerzetten en opnieuw maken.
Van toepassing op SQL Server (alle ondersteunde versies), Azure SQL Database en Azure Synapse Analytics
De naam van een object wijzigen, zoals een tabel of kolom zal niet automatisch verwijzingen naar dat object hernoemen.U moet alle objecten die naar het hernoemde object verwijzen, handmatig wijzigen. Als u bijvoorbeeld de naam van een tabelkolom wijzigt en naar die kolom wordt verwezen in een trigger, moet u de trigger aanpassen aan de nieuwe kolomnaam. Gebruik sys.sql_expression_dependencies om afhankelijkheden van het object weer te geven voordat u het hernoemt.
Is van toepassing op SQL Server (alle ondersteunde versies), Azure SQL Database en Azure Synapse Analytics.
U kunt de naam van een object wijzigen of datatype alleen in de huidige database. De namen van de meeste systeemgegevenstypen en systeemobjecten kunnen niet worden gewijzigd.
Machtigingen
Om de naam van objecten, kolommen en indexen te wijzigen, is ALTER-toestemming voor het object vereist. Om gebruikerstypen te hernoemen, is CONTROL-toestemming voor het type vereist. Om een database te hernoemen, is lidmaatschap van de sysadmin of dbcreator vaste serverrollen vereist.
Voorbeelden
A. De naam van een tabel wijzigen
Het volgende voorbeeld hernoemt de SalesTerritory
tabel naar SalesTerr
in de Sales
schema.
B. De naam van een kolom wijzigen
In het volgende voorbeeld wordt de naam van de TerritoryID
kolom in de SalesTerritory
-tabel gewijzigd in TerrID
.
C. Een index hernoemen
In het volgende voorbeeld wordt de IX_ProductVendor_VendorID
-index hernoemd naar IX_VendorID
.
D . De naam van een aliasgegevenstype wijzigen
In het volgende voorbeeld wordt het Phone
aliasgegevenstype hernoemd naar Telephone
.
E. Constraints hernoemen
De volgende voorbeelden hernoemen een PRIMARY KEY-beperking, een CHECK-beperking en een FOREIGN KEY-beperking. Bij het hernoemen van een beperking, moet het schema waartoe de beperking behoort, worden gespecificeerd.
F. Statistieken hernoemen
In het volgende voorbeeld wordt een statistiekobject gemaakt met de naam contactMail1 en vervolgens wordt de statistiek hernoemd naar NewContact door sp_rename te gebruiken. Bij het hernoemen van statistieken moet het object worden opgegeven in de indeling schema.table.statistics_name.
Voorbeelden: Azure Synapse Analytics
G. De naam van een kolom wijzigen
In het volgende voorbeeld wordt de naam van de c1
kolom in de table1
tabel gewijzigd in col1
.