sp_rename (Transact-SQL)

Geçerli veritabanında bir kullanıcı tarafından oluşturulan nesnenin adını değiştirir.This object can be a table, index, column, alias data type, or Microsoft .NET Framework common language runtime (CLR) user-defined type.

Uyarı

Nesne adı herhangi bir bölümünü değiştirme, komut dosyaları ve saklı yordamlar kesebilirsiniz.Bu deyim saklı yordamlar, tetikleyiciler, kullanıcı tanımlı işlevler veya görünümleri yeniden adlandırma; bunun yerine, nesneyi bırakın ve bunu yeni bir adla yeniden kullanmamanızı öneririz.

Topic link iconTransact-SQL sözdizimi kuralları

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

Bağımsız değişkenler

  • [objname =] ' object_name'
    Geçerli tam veya nonqualified kullanıcı nesnesi veya veri türü adıdır.Nesnenin yeniden adlandırılması, tablodaki bir sütun ise object_name biçiminde olması gerekir table.column veya schema.table.column. Nesnenin yeniden adlandırılması, dizin object_name biçiminde olması gerekir table.index veya schema.table.index.

    Tırnak işaretleri, tam bir nesne belirtilirse gereklidir.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.

    Not

    Tetikleyici adlarının başlatılamıyor # ile veya ##.

  • [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.

    Değer

    Açıklama

    SÜTUN

    sütun yeniden adlandırılması.

    VERİTABANI

    Kullanıcı tanımlı BIR veritabanıdır.Bu nesne türü, bir veritabanını yeniden adlandırılırken gereklidir.

    DİZİN

    Bir kullanıcı tarafından tanımlanan dizin.

    NESNE

    Bir öğe içinde izlenen bir türü sys.Objects.Örneğin, NESNE, nesneleri, kısıtlamalar (CHECK, yabancı anahtar, PRıMARY/UNıQUE KEY), kullanıcı tablo ve kuralları da dahil olmak üzere yeniden adlandırmak için kullanılabilir.

    userdatatype

    Bir diğer ad ad veri türü or CLR kullanıcı tanımlı türler yürüterek eklendi.TİPİ OLUŞTURMA or sp_addtype.

Dönüş Kodu Değerleri

0 (başarılı) veya sıfır olmayan bir sayı (hata)

Remarks

Yalnızca geçerli veritabanında bir nesne veya veri türünü değiştirebilirsiniz.Çoğu sistem veri türleri ve sistem nesnelerinin adlarını değiştirilemez.

birincil anahtar veya BENZERSIZ kısıtlama adı her sp_rename ilişkili dizin otomatik olarak yeniden adlandırır.Yeniden adlandırılan bir dizin için bir birincil anahtar kısıtlaması bağlıysa, birincil anahtar kısıtlaması sp_rename tarafından otomatik olarak yeniden adlandırılır.

sp_rename, birincil ve ikincil XML dizinler yeniden adlandırmak için kullanılabilir.

Saklı yordam, işlev, görünüm veya tetikleyiciyi yeniden adlandırma, ilgili nesne adını tanımında adını değiştirmez sütun, sql_dependencies kataloğunu görüntüleyin.Bu nedenle, bu sp_renam önerilire bu nesne türleri yeniden adlandırmak için kullanılır.Bunun yerine, bırakın ve yeni adı taşıyan nesneyi yeniden oluşturun.

Nesne bir tablo veya sütun yeniden adlandırma otomatik olarak bu nesnesine olan başvurular adlandırır değil.Yeniden adlandırılan nesneyi el ile başvuran herhangi bir nesne değiştirmeniz gerekir.Örneğin, bir tablo sütunu yeniden adlandırma ve o sütun içinde bir tetikleyici başvuruda bulunulan, onlarda da yeni bir sütun ad için bir tetikleyici değiştirmeniz gerekir.Kullanımısys.sql_expression_dependencies listesi adını değiştirmeden önce Nesne bağımlılıkları için.

İzinler

Nesneleri, sütun ve dizin, yeniden adlandırmak için nesne ALTER izni gerektirir.Kullanıcı türü, yeniden adlandırmak için tür DENETIM izni gerektirir.Bir veritabanı, yeniden adlandırmak için sunucu rollerini sabit dbcreator veya sysadmin Üyelik gerekir.

Örnekler

C.Yeniden adlandırmayı bir tablo

Aşağıdaki örnek yeniden adlandırır SalesTerritory tablo için SalesTerr içinde Sales Schema.

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

b.sütun yeniden adlandırma

Aşağıdaki örnek yeniden adlandırır TerritoryID sütunda SalesTerritory tabloya TerrID.

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

c.Dizin yeniden adlandırılıyor

Aşağıdaki örnek yeniden adlandırır IX_ProductVendor_VendorID dizine IX_VendorID.

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

d.Bir diğer ad ad veri türü için yeniden adlandırma

Aşağıdaki örnek yeniden adlandırır Phone diğer ad için veri türü Telephone.

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