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.

Zie ook

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *