Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Geçerli veritabanında kullanıcı tarafından oluşturulan bir nesnenin adını değiştirir. Bu nesne bir tablo, dizin, sütun, diğer ad veri türü veya Microsoft olabilir
.NET Framework ortak dil çalışma zamanı (CLR) kullanıcı tanımlı tür.
Önemli
Bazı sistem nesneleri ve Transact-SQL söz dizimi, bu makale de dahil olmak üzere Azure Synapse Analytics'teki sunucusuz SQL havuzlarında desteklenmez. Daha fazla bilgi için T-SQL desteği adresini ziyaret edin.
Dikkat
Nesne adının herhangi bir bölümünü değiştirmek betikleri ve saklı yordamları bozabilir. Saklı yordamları, tetikleyicileri, kullanıcı tanımlı işlevleri veya görünümleri yeniden adlandırmak için bu deyimi kullanmamanızı öneririz; bunun yerine, nesneyi bırakın ve yeni adla yeniden oluşturun.
Transact-SQL söz dizimi kuralları
Sözdizimi
SQL Server ve Azure SQL Veritabanı'nda için sp_rename sözdizimi:
sp_rename [ @objname = ] 'object_name' , [ @newname = ] 'new_name'
[ , [ @objtype = ] 'object_type' ]
sp_rename Azure Synapse Analytics'te söz dizimi (önizleme):
sp_rename [ @objname = ] 'object_name' , [ @newname = ] 'new_name'
, [ @objtype = ] 'COLUMN'
Microsoft Fabric'te için sp_rename sözdizimi:
sp_rename [ @objname = ] 'object_name' , [ @newname = ] 'new_name'
[ , [ @objtype = ] 'OBJECT' ]
Tartışmalar
[ @objname = ] 'object_name'
Kullanıcı nesnesinin veya veri türünün geçerli nitelenmiş veya nitelenmemiş adı. Yeniden adlandırılacak nesne tablodaki bir sütunsa, object_nametable.column veya schema.table.column biçiminde olmalıdır. Yeniden adlandırılacak nesne bir dizinse, object_nametable.index veyaschema.table.index biçiminde olmalıdır. Yeniden adlandırılacak nesne bir kısıtlamaysa , object_nameschema.constraint biçiminde olmalıdır.
Tırnak işaretleri yalnızca nitelenmiş bir nesne belirtilirse gereklidir. Veritabanı adı da dahil olmak üzere tam bir ad sağlanırsa, veritabanı adı geçerli veritabanının adı olmalıdır. object_namenvarchar(776) şeklindedir ve varsayılan değer yoktur.
[ @newname = ] 'new_name'
Belirtilen nesnenin yeni adı. new_name tek parçalı bir ad olmalıdır ve tanımlayıcılar için kurallara uymalıdır. newname , sysname şeklindedir ve varsayılan değer yoktur.
Tetikleyici adları # veya ## ile başlayamaz.
Şunun için geçerlidir: Microsoft Fabric'te Ambar:
- Şema adları içeremez
/veya\ile.bitemez. - Tablo adları içeremez
/veya\ile.bitemez.
[ @objtype = ] 'object_type'
Yeniden adlandırılan nesnenin türü.
object_type, varsayılan NULLdeğeri olan varchar(13)'dir ve bu değerlerden biri olabilir.
| Değer | Açıklama |
|---|---|
COLUMN |
Yeniden adlandırılacak bir sütun. |
DATABASE |
Kullanıcı tanımlı veritabanı. Bir veritabanı yeniden adlandırılırken bu nesne türü gereklidir. |
INDEX |
Kullanıcı tanımlı dizin. bir dizini istatistiklerle yeniden adlandırmak, istatistikleri de otomatik olarak yeniden adlandırır. |
OBJECT |
sys.objects içinde izlenen türde bir öğe. Örneğin, OBJECT kısıtlamalar (CHECK, FOREIGN KEY, PRIMARY/UNIQUE KEY), kullanıcı tabloları, sütunlar, saklı yordamlar, satır içi tablo değerli işlevler, tablo değerli işlevler ve kurallar gibi nesneleri yeniden adlandırmak için kullanılabilir. |
STATISTICS |
Şunlar için geçerlidir: SQL Server 2012 (11.x) ve üzeri ile Azure SQL Veritabanı. Bir kullanıcı tarafından açıkça oluşturulan veya bir dizinle örtük olarak oluşturulan istatistikler. Bir dizinin istatistiklerini yeniden adlandırmak da dizini otomatik olarak yeniden adlandırır. |
USERDATATYPE |
CREATE TYPE veya sp_addtype yürütülerek eklenen CLR kullanıcı tanımlı tür. |
için geçerlidir: Azure Synapse Analytics
-
sp_renameAzure Synapse Analytics için (önizleme) içinde,COLUMNyeniden adlandırılacak nesne türünün bir sütun olduğunu ve her zaman deyiminesp_renameeklenmesi gerektiğini belirten zorunlu bir değerdir. Bir sütun yalnızca dağıtım sütunu değilse yeniden adlandırılabilir.sp_renameyalnızca kullanıcı nesnesindeki birCOLUMNöğesini yeniden adlandırmak için kullanılabilir.
Şunlar için geçerlidir: Microsoft Fabric
- Microsoft Fabric'teki
sp_renameAmbar'da,OBJECT@objtype için desteklenen tek değerdir. - Microsoft Fabric'teki
sp_renameSQL analiz uç noktası için içinde,OBJECT@objtype için desteklenen tek değerdir. Tablolar ve sütunlar yeniden adlandırılamaz.
Dönüş kodu değerleri
0 (başarı) veya sıfır olmayan bir sayı (başarısızlık).
Açıklamalar
Şunun için geçerlidir: SQL Server (desteklenen tüm sürümler) ve Azure SQL Veritabanı:
sp_renamebir BİRİnCİl ANAHTAR veya BENZERSİz kısıtlaması yeniden adlandırıldığı zaman ilişkili dizini otomatik olarak yeniden adlandırır. Yeniden adlandırılan dizin bİrİnCİl ANAHTAR kısıtlamasına bağlıysa, BİRİnCİl ANAHTAR kısıtlaması da tarafındansp_renameotomatik olarak yeniden adlandırılır.sp_renamebirincil ve ikincil XML dizinlerini yeniden adlandırmak için kullanılabilir.Saklı yordamı, işlevi, görünümü veya tetikleyiciyi yeniden adlandırmak, sys.sql_modules katalog görünümünün tanım sütununda veya yerleşik OBJECT_DEFINITION işlevi kullanılarak elde edilen ilgili nesnenin adını değiştirmez. Bu nedenle, bu nesne türlerini yeniden adlandırmak için kullanılmaması önerilir
sp_rename. Bunun yerine, nesneyi bırakın ve yeni adıyla yeniden oluşturun.
Şunun için geçerlidir: SQL Server (desteklenen tüm sürümler), Azure SQL Veritabanı ve Azure Synapse Analytics:
Tablo veya sütun gibi bir nesneyi yeniden adlandırmak, bu nesneye başvuruları otomatik olarak yeniden adlandırmaz. Yeniden adlandırılan nesneye başvuran nesneleri el ile değiştirmeniz gerekir. Örneğin, bir tablo sütununu yeniden adlandırırsanız ve bu sütuna tetikleyicide başvurulursa, tetikleyiciyi yeni sütun adını yansıtacak şekilde değiştirmeniz gerekir. Yeniden adlandırmadan önce nesnedeki bağımlılıkları listelemek için sys.sql_expression_dependencies kullanın.
Bir sütunun yeniden adlandırılması, bu tablodan tüm sütunları (kullanarak
*) SELECT eden nesnelerin meta verilerini otomatik olarak güncelleştirmez. Örneğin, bir tablo sütununu yeniden adlandırırsanız ve bu sütuna şemaya bağlı olmayan bir görünüm veya işlev tarafından başvurulursa, tüm sütunları (kullanarak*) SELECTs görünümü veya işlevi için meta veriler özgün sütun adını yansıtmaya devam eder. sp_refreshsqlmodule veya sp_refreshviewkullanarak meta verileri yenileyin.Yalnızca geçerli veritabanındaki bir nesnenin veya veri türünün adını değiştirebilirsiniz. Sistem veri türlerinin ve sistem nesnelerinin çoğunun adları değiştirilemez.
Yeni ad için 128'den fazla karakter kullanırsanız, yalnızca ilk 128 karakter kullanılır ve gerisi kesilir.
Şunun için geçerlidir: Azure Synapse Analytics:
- Azure Synapse Analytics'te ayrılmış
sp_renameSQL havuzları için Önizleme aşamasındadır.
İzinler
Nesneleri, sütunları ve dizinleri yeniden adlandırmak için nesne üzerinde ALTER izni gerekir. Kullanıcı türlerini yeniden adlandırmak için tür üzerinde CONTROL izni gerekir. Veritabanını yeniden adlandırmak için sysadmin veya dbcreator sabit sunucu rollerinde üyelik gerekir. Bir kayıt defteri tablosunu yeniden adlandırmak için ALTER LEDGER izni gerekir.
Örnekler
A. Tabloyu yeniden adlandırma
Aşağıdaki örnek, SalesTerritory tablosunu SalesTerr şemasında Sales olarak yeniden adlandırır.
USE AdventureWorks2022;
GO
EXECUTE sp_rename 'Sales.SalesTerritory', 'SalesTerr';
GO
B. Bir sütunu yeniden adlandır
Aşağıdaki örnek, tablodaki TerritoryIDSalesTerritory sütunu olarak TerrIDyeniden adlandırır.
USE AdventureWorks2022;
GO
EXECUTE sp_rename 'Sales.SalesTerritory.TerritoryID', 'TerrID', 'COLUMN';
GO
C. Dizini yeniden adlandırma
Aşağıdaki örnek dizini olarak IX_VendorIDyeniden adlandırırIX_ProductVendor_VendorID.
USE AdventureWorks2022;
GO
EXECUTE sp_rename N'Purchasing.ProductVendor.IX_ProductVendor_VendorID', N'IX_VendorID', N'INDEX';
GO
D. Diğer ad veri türünü yeniden adlandırma
Aşağıdaki örnek diğer ad veri türünü olarak Telephoneyeniden adlandırırPhone.
USE AdventureWorks2022;
GO
EXECUTE sp_rename N'Phone', N'Telephone', N'USERDATATYPE';
GO
E. Kısıtlamaları yeniden adlandırma
Aşağıdaki örneklerde BİrİnCİl ANAHTAR kısıtlaması, CHECK kısıtlaması ve YABANCı ANAHTAR kısıtlaması yeniden adlandırın. Bir kısıtlama yeniden adlandırıldığında, kısıtlamanın ait olduğu şema belirtilmelidir.
USE AdventureWorks2022;
GO
-- Return the current Primary Key, Foreign Key and Check constraints for the Employee table.
SELECT name,
SCHEMA_NAME(schema_id) AS schema_name,
type_desc
FROM sys.objects
WHERE parent_object_id = (OBJECT_ID('HumanResources.Employee'))
AND type IN ('C', 'F', 'PK');
GO
-- Rename the primary key constraint.
EXECUTE sp_rename 'HumanResources.PK_Employee_BusinessEntityID', 'PK_EmployeeID';
GO
-- Rename a check constraint.
EXECUTE sp_rename 'HumanResources.CK_Employee_BirthDate', 'CK_BirthDate';
GO
-- Rename a foreign key constraint.
EXECUTE sp_rename 'HumanResources.FK_Employee_Person_BusinessEntityID', 'FK_EmployeeID';
-- Return the current Primary Key, Foreign Key and Check constraints for the Employee table.
SELECT name,
SCHEMA_NAME(schema_id) AS schema_name,
type_desc
FROM sys.objects
WHERE parent_object_id = (OBJECT_ID('HumanResources.Employee'))
AND type IN ('C', 'F', 'PK');
GO
name schema_name type_desc
------------------------------------- ------------------ ----------------------
FK_Employee_Person_BusinessEntityID HumanResources FOREIGN_KEY_CONSTRAINT
PK_Employee_BusinessEntityID HumanResources PRIMARY_KEY_CONSTRAINT
CK_Employee_BirthDate HumanResources CHECK_CONSTRAINT
CK_Employee_MaritalStatus HumanResources CHECK_CONSTRAINT
CK_Employee_HireDate HumanResources CHECK_CONSTRAINT
CK_Employee_Gender HumanResources CHECK_CONSTRAINT
CK_Employee_VacationHours HumanResources CHECK_CONSTRAINT
CK_Employee_SickLeaveHours HumanResources CHECK_CONSTRAINT
(7 row(s) affected)
name schema_name type_desc
------------------------------------- ------------------ ----------------------
FK_Employee_ID HumanResources FOREIGN_KEY_CONSTRAINT
PK_Employee_ID HumanResources PRIMARY_KEY_CONSTRAINT
CK_BirthDate HumanResources CHECK_CONSTRAINT
CK_Employee_MaritalStatus HumanResources CHECK_CONSTRAINT
CK_Employee_HireDate HumanResources CHECK_CONSTRAINT
CK_Employee_Gender HumanResources CHECK_CONSTRAINT
CK_Employee_VacationHours HumanResources CHECK_CONSTRAINT
CK_Employee_SickLeaveHours HumanResources CHECK_CONSTRAINT
(7 row(s) affected)
F. İstatistikleri yeniden adlandırma
Aşağıdaki örnek adlı contactMail1 bir istatistik nesnesi oluşturur ve kullanarak sp_renameistatistiği olarak NewContact yeniden adlandırır. İstatistikleri yeniden adlandırdığınızda, nesne 'schema.table.statistics_name' biçiminde belirtilmelidir.
CREATE STATISTICS ContactMail1
ON Person.Person(BusinessEntityID, EmailPromotion)
WITH SAMPLE 5 PERCENT;
EXECUTE sp_rename 'Person.Person.ContactMail1', 'NewContact', 'Statistics';
Örnekler: Azure Synapse Analytics
G. Bir sütunu yeniden adlandır
Aşağıdaki örnek, tablodaki c1table1 sütunu olarak col1yeniden adlandırır.
Uyarı
Bu Azure Synapse Analytics özelliği ayrılmış SQL havuzları için önizleme aşamasındadır ve şu anda yalnızca şemadaki dbo nesneler için kullanılabilir.
CREATE TABLE table1 (c1 INT, c2 INT);
EXECUTE sp_rename 'table1.c1', 'col1', 'COLUMN';
GO
H. Nesneyi yeniden adlandırma
Aşağıdaki örnek, türünü kullanarak tabloyu dbo.table1dbo.table2olarak yeniden adlandırır OBJECT .
EXECUTE sp_rename
@objname = 'dbo.table1',
@newname = 'table2',
@objtype = 'OBJECT';