sp_rename (języka Transact-SQL)

Zmienia nazwę obiektu utworzonego przez użytkownika w bieżącej bazie danych.This object can be a table, index, column, alias data type, or Microsoft .NET Framework common language runtime (CLR) user-defined type.

Ostrzeżenie

Zmiana dowolnej części nazw obiektów można przerwać, skryptów i procedur przechowywanych.Firma Microsoft zaleca, aby zmienić nazwy procedur przechowywanych, wyzwalaczy, funkcji zdefiniowanych przez użytkownika oraz widoki; zamiast tego należy upuścić obiekt i odtworzyć go pod nową nazwą nie należy używać tej instrukcja.

Topic link iconKonwencje składni języka Transact-SQL

sp_rename [ @objname = ] 'object_name' , [ @newname = ] 'new_name' 
    [ , [ @objtype = ] 'object_type' ] 

Argumenty

  • [@ objname =] ' object_name"
    To nazwa kwalifikowana lub nonqualified bieżącego typu danych lub obiektu użytkownika.Jeśli obiekt, którego nazwę należy zmienić kolumna do tabela object_name musi być w formularzu table.column lub schema.table.column. Jeśli obiekt, którego nazwę należy zmienić indeksu object_name musi być w formularzu table.index lub schema.table.index.

    Znaki cudzysłowu są tylko niezbędne, jeśli jest określona kwalifikowaną obiektu.If a fully qualified name, including a database name, is provided, the database name must be the name of the current database.object_name is nvarchar(776), with no default.

  • [@ newname =] ' new_name"
    Is the new name for the specified object.new_name must be a one-part name and must follow the rules for identifiers.newname is sysname, with no default.

    Uwaga

    Nazwy wyzwalacza nie może rozpoczynać się # lub ##.

  • [@ objtype =] ' object_type"
    Is the type of object being renamed.object_type is varchar(13), with a default of NULL, and can be one of these values.

    Wartość

    Description

    kolumna

    kolumna można zmienić nazwy.

    BAZY DANYCH

    Baza danych zdefiniowanych przez użytkownika.Ten typ obiektu jest wymagany przy zmianie nazwy bazy danych.

    INDEKS

    Indeks zdefiniowany przez użytkownika.

    OBIEKT

    Element typu śledzone w programie sys.Objects.Na przykład OBJECT mogą służyć do zmiany nazwy obiektów w tym również bez ograniczeń (wyboru klucz obcy unikatowy/PRIMARY KEY), tabele użytkowników i zasady.

    USERDATATYPE

    An alias data type or CLR User-defined Types added by executing CREATE TYPE or sp_addtype.

Wartości kodów powrotnych

sp_update_alert

Remarks

Można zmienić nazwy typu obiektu lub dane w bieżącej bazie danych tylko.Nie można zmienić nazwy większości typów danych systemu i obiektów systemu.

sp_rename automatycznie zmienia nazwę indeksu skojarzony za każdym razem, gdy została zmieniona nazwa ograniczenia klucz podstawowy lub UNIQUE.Jeśli zmieniono nazwę indeksu jest związany ograniczenia klucz podstawowy, ograniczenia klucz podstawowy jest automatycznie zmieniana przez sp_rename.

sp_rename może służyć do zmiany nazwy podstawowych i pomocniczych indeksów XML.

Zmiana nazwy procedura przechowywana, funkcja, widoku lub wyzwalacz nie ulegnie zmianie odpowiednią nazwę obiektu kolumna definicji sys.sql_modules Służy do wyświetlania katalogu. Dlatego zaleca się tym sp_rename nie można zmienić nazwy tych typów obiektów.Zamiast tego należy usunąć i ponownie utworzyć obiektu pod nową nazwą.

Zmiana nazwy obiektu, takiego jak tabela lub kolumna nie zostanie automatycznie zmieniona odwołania do tego obiektu.Należy zmodyfikować wszystkie obiekty, które odwołują się ręcznie zmieniono nazwę obiektu.Na przykład jeśli w przypadku zmiany nazwy kolumny tabela, a kolumna odwołuje się do wyzwalacza, należy zmodyfikować wyzwalacz, aby odzwierciedlały nową nazwę kolumny.Użyciesys.sql_expression_dependencies na liście zależności obiektu przed zmiana jego nazwy.

Uprawnienia

Aby zmienić nazwę obiektów, kolumn i indeksy, wymaga ALTER uprawnienia dla obiektu.Aby zmienić typy użytkowników wymaga uprawnienia kontroli dla typu.Aby zmienić nazwę bazy danych, wymaga członkostwo w grupie sysadmin lub dbcreator stałe role serwerów

Przykłady

A.Zmiana nazwy tabela

Zmienia nazwę w następującym przykładzie SalesTerritory Tabela SalesTerr w Sales schemat.

USE AdventureWorks;
GO
EXEC sp_rename 'Sales.SalesTerritory', 'SalesTerr';
GO

B.Zmiana nazwy kolumna

Zmienia nazwę w następującym przykładzie TerritoryID kolumna w SalesTerritory Tabela TerrID.

USE AdventureWorks;
GO
EXEC sp_rename 'Sales.SalesTerritory.TerritoryID', 'TerrID', 'COLUMN';
GO

C.Zmienianie nazwy indeksu

Zmienia nazwę w następującym przykładzie IX_ProductVendor_VendorID Indeks IX_VendorID.

USE AdventureWorks;
GO
EXEC sp_rename N'Purchasing.ProductVendor.IX_ProductVendor_VendorID', N'IX_VendorID', N'INDEX';
GO

D.Zmienianie nazwy typu danych alias

Zmienia nazwę w następującym przykładzie Phone Aby skierować typ danych Telephone.

USE AdventureWorks;
GO
EXEC sp_rename N'Phone', N'Telephone', N'USERDATATYPE';
GO