sp_rename (Transact-sql)

Geçerli veritabanında bir kullanıcı tarafından oluşturulan nesnenin adını değiştirir. Bu nesne bir tablo, dizin, sütun, diğer ad veri türü, olabilir veya Microsoft  .NET Frameworkortak dil çalışma zamanı (clr) kullanıcı tanımlı türü.

Dikkat notuDikkat

Bir nesne adının bir kısmını değiştirme, komut dosyaları ve depolanmış yordamları zarar verebilir. Bu deyimi, saklı yordamlar, Tetikleyiciler, kullanıcı tanımlı işlevler veya görünümleri yeniden adlandırmak için kullanmayın öneririz; Bunun yerine, nesne açılan ve yeni adıyla yeniden oluşturun.

Konu bağlantısı simgesi Transact-SQL Sözdizim Kuralları

Sözdizimi

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

Bağımsız değişkenler

  • @objname = 'object_name'
    Geçerli nitelikli ya da niteliksiz kullanıcı nesnesi ya da veri türü addır. Yeniden adlandırılması nesne bir tablo sütununda ise object_namebiçiminde olması gerekir table.columnya schema.table.column. Eğer adlandırılacak nesnenin dizin, object_namebiçiminde olması gerekir table.indexya schema.table.index.

    Tırnak işaretleri yalnızca nitelikli bir nesne belirtilirse gereklidir. İçeren bir veritabanı adı, tam adı verdiyse, geçerli veritabanının adını veritabanı adı olmalıdır. object_nameise nvarchar(776), hiçbir varsayılan ile.

  • @newname = 'new_name'
    Belirtilen nesne için yeni adıdır. new_namebir tek parça adı olmalı ve tanımlayıcıları kuralları izlemeniz gerekir. newname ise sysname, hiçbir varsayılan ile.

    [!NOT]

    Tetikleyici adı # ile başlatılamıyor veya ##.

  • @objtype = 'object_type'
    Nesne türünü yeniden adlandırılıyor. object_typeise varchar(13), null varsayılan ile ve bu değerlerden birini olabilir.

    Değer

    Açıklama

    COLUMN

    Yeniden adlandırılması sütun.

    DATABASE

    Kullanıcı tanımlı veritabanı. Bu nesne türü, veritabanı yeniden adlandırırken gereklidir.

    INDEX

    Kullanıcı tarafından tanımlanmış bir dizin. Bir dizin istatistikleri ile yeniden adlandırma, otomatik olarak istatistikleri yeniden adlandırır.

    OBJECT

    Bir türdeki öğeyi izlenen sys.objects. Örneğin, OBJECTkısıtlamaları (onay, FOREIGN key, birincil ve UNIQUE tuşu), kullanıcı tabloları ve kuralları içeren nesneleri yeniden adlandırmak için kullanılan olabilir.

    İSTATİSTİKLERİ

    Açık olarak bir kullanıcı tarafından oluşturulan veya örtülü olarak oluşturulmuş bir dizini ile istatistik. Bir dizin istatistikleri otomatik olarak yeniden adlandırılması dizin de yeniden adlandırır.

    USERDATATYPE

    A clr kullanıcı tanımlı türler yürüterek eklendi create type ya sp_addtype.

Dönüş Kodu Değerleri

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

Açıklamalar

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

sp_renameher bir birincil anahtar veya UNIQUE sınırlamasıyla adlandırılır ilişkili dizin otomatik olarak yeniden adlandırır. Yeniden adlandırılan bir dizin PRIMARY key kısıtlaması için bağlıysa, PRIMARY key kısıtlaması tarafından otomatik olarak adlandırılır sp_rename.

sp_renamebirincil ve ikincil xml dizinler yeniden adlandırmak için kullanılabilir.

Saklı yordam, işlev, görünüm veya tetikleyici yeniden adlandırma değil ilgili nesne adı değişecek definitionsütununda sys.sql_modules Katalog görünümü. Bu nedenle, öneririz sp_rename değil bu nesne türlerini yeniden adlandırmak için kullanılır. Bunun yerine, açılan ve yeni adıyla nesnesini yeniden.

Bir tablo veya sütun gibi bir nesneyi yeniden adlandırma otomatik olarak nesne başvurularını adlandırır değil. Yeniden adlandırılmış nesneyi el ile başvuru nesneleri değiştirmek gerekir. Örneğin, tablo sütunu yeniden adlandırma ve bu sütunu bir tetikleyici başvuruda bulunulan, tetikleyici yeni sütun adını yansıtacak şekilde değiştirmeniz gerekir. Kullanım c.sys.sql_expression_dependencies için adını değiştirmeden önce liste bağımlı nesne.

İzinler

Nesneleri, SÜTUNSAY ve DIZINLER, yeniden adlandırmak için nesne üzerinde alter izni gerektirir. Kullanıcı türleri, yeniden adlandırmak için türü üzerinde DENETIM izni gerektirir. Bir veritabanı yeniden adlandırmak için üyelik sysadminveya dbcreator sunucu rolleri sabit

Örnekler

A.Bir tabloyu yeniden adlandırma

Aşağıdaki örnek adını değiştirir SalesTerritorytabloya SalesTerrde Salesşema.

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

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

B.Sütunu yeniden adlandırma

Aşağıdaki örnek adını değiştirir TerritoryIDsütununda SalesTerritory tabloya TerrID.

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

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

C.Dizini yeniden adlandırma

Aşağıdaki örnek adını değiştirir IX_ProductVendor_VendorIDdizin IX_VendorID.

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

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

D.Diğer ad veri türü yeniden adlandırma

Aşağıdaki örnek adını değiştirir Phonead veri türü için Telephone.

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

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

Ayrıca bkz.

Başvuru

c.sys.sql_expression_dependencies (Transact-sql)

sys.sql_modules (Transact-sql)

Sistem saklı yordamları (Transact-sql)

Veritabanı Altyapısı depolanan yordamlar (Transact-sql)