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 Framework ortak dil çalışma zamanı (clr) kullanıcı tanımlı tür.
Dikkat |
---|
Nesne adının bir kısmını değiştirme, komut dosyaları ve depolanmış yordamları kesebilirsiniz.Saklı yordamlar, tetikleyiciler, kullanıcı tanımlı işlevler veya görünümleri yeniden adlandırmak için bu deyim kullanmayın öneririz; Bunun yerine, nesneyi bırakın ve yeni bir adla yeniden oluşturun. |
Sözdizimi
sp_rename [ @objname = ] 'object_name' , [ @newname = ] 'new_name'
[ , [ @objtype = ] 'object_type' ]
Bağımsız değişkenler
[ NesneAdı = ] 'object_name'
Geçerli tam veya nonqualified kullanıcı nesnesi ya da veri türü addır.Yeniden adlandırılması nesne bir tablo, sütun ise object_name biçiminde olması gerekir table.column veya schema.table.column.Bir dizin yeniden adlandırılması nesne ise object_name biçiminde olması gerekir table.index veya schema.table.index.Tırnak işaretleri yalnızca, tam bir nesne belirtilmemişse gereklidir.Bir veritabanı adı dahil tam bir adı verdiyse, geçerli veritabanının adını veritabanı adı olmalıdır.object_nameİş nvarchar(776), ile hiçbir varsayılan.
[ @ newname = ] 'new_name'
Belirtilen nesne için yeni adıdır.new_nametek parça ad olmalı ve tanımlayıcıları kurallarýna uygun olmalýdýr.newname İş sysname, ile hiçbir varsayılan.Not
Tetikleyici adı # ile başlatılamıyor veya ##.
[ @ objtype = ] 'object_type'
Nesne türü yeniden adlandırılır.object_typeİş varchar(13), null, varsayılan değer ve biri bu değerler. olabilirDeğer
Açıklama
COLUMN
Yeniden adlandırılması sütun .
DATABASE
Kullanıcı tanımlı veritabanı.Bu nesne türü, bir veritabanı yeniden adlandırırken gereklidir.
INDEX
Kullanıcı tarafından tanımlanmış bir dizin.
OBJECT
Bir tür öğe izleniyor sys.objects.Örneğin, OBJECT kullanılacak yeniden adlandırmak için nesneleri dahil kısıtlamaları (onay, yabancı anahtar birincil/UNIQUE key), kullanıcı tabloları ve kurallar.
USERDATATYPE
Bir diğer ad veri türü veya clr kullanıcı tanımlı türler yürüterek eklenen create type veya 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 veya 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 benzersiz kısıtlama yeniden adlandırılmış ilişkili dizin otomatik olarak yeniden adlandırır.Yeniden adlandırılan dizin PRIMARY key kısıtlaması için bağlıysa, PRIMARY key kısıtlaması tarafından otomatik olarak da adlandırılır sp_rename.
sp_renamebirincil ve ikincil xml dizinler yeniden adlandırmak için kullanılır.
saklı yordam, işlev, görünüm veya tetikleyici yeniden adlandırma değil değiştirir karşılık gelen nesne adı definitionsütun sql_dependencies Katalog görünümü.Bu nedenle, öneririz sp_rename kullanılamaz yeniden adlandırma bu nesne türleri.Bunun yerine, bırakın ve nesnenin yeni adı ile yeniden oluşturun.
Bir tablo veya sütun gibi bir nesneyi yeniden adlandırma otomatik olarak o nesne başvurularını adlandırır değil.El ile yeniden adlandırılmış nesne başvurusu herhangi bir nesne değiştirmeniz gerekir.Örneğin, bir tablo sütun yeniden adlandırabilir ve o sütun de tetikleyici başvuruda bulunulan, tetikleyici yeni sütun adını yansıtacak şekilde değiştirmeniz gerekir.Usesys.sql_expression_dependencies yeniden adlandırmadan önce nesne bağımlılıkları listesi için.
İzinler
Nesneleri, sütun ve dizin, yeniden adlandırmak için nesne üzerinde alter izni gerektirir.Kullanıcı türleri yeniden adlandırmak için tür DENETLEME izni gerektirir.Bir veritabanı yeniden adlandırmak için üyelik gerektirir sysadmin veya dbcreator sabit sunucu rolleri
Örnekler
A.Bir tabloyeniden adlandırma
Aşağıdaki örnek yeniden adlandırır SalesTerritory tablo SalesTerr , Sales şema.
USE AdventureWorks2008R2;
GO
EXEC sp_rename 'Sales.SalesTerritory', 'SalesTerr';
GO
B.sütunyeniden adlandırma
Aşağıdaki örnek yeniden adlandırır TerritoryID sütun SalesTerritory tablo TerrID.
USE AdventureWorks2008R2;
GO
EXEC sp_rename 'Sales.SalesTerritory.TerritoryID', 'TerrID', 'COLUMN';
GO
C.Bir dizin yeniden adlandırma
Aşağıdaki örnek yeniden adlandırır IX_ProductVendor_VendorID dizine IX_VendorID.
USE AdventureWorks2008R2;
GO
EXEC sp_rename N'Purchasing.ProductVendor.IX_ProductVendor_VendorID', N'IX_VendorID', N'INDEX';
GO
D.Bir diğer ad veri türü yeniden adlandırma
Aşağıdaki örnek yeniden adlandırır Phone diğer ad veri türü için Telephone.
USE AdventureWorks2008R2;
GO
EXEC sp_rename N'Phone', N'Telephone', N'USERDATATYPE';
GO