Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
Azure Synapse Analytics
SQL Analytics-végpont a Microsoft Fabricban
Warehouse a Microsoft Fabricban
Módosítja egy felhasználó által létrehozott objektum nevét az aktuális adatbázisban. Ez az objektum lehet tábla, index, oszlop, alias adattípus vagy Microsoft
A .NET-keretrendszer általános nyelvi futtatókörnyezete (CLR) felhasználó által definiált típusa.
Fontos
Egyes rendszerobjektumok és Transact-SQL szintaxis nem támogatott az Azure Synapse Analytics kiszolgáló nélküli SQL-készleteiben, beleértve ezt a cikket is. További információ: T-SQL-támogatás.
Figyelmeztetés
Az objektumnév bármely részének módosítása megszakíthatja a szkripteket és a tárolt eljárásokat. Javasoljuk, hogy ne használja ezt az utasítást a tárolt eljárások, eseményindítók, felhasználó által definiált függvények vagy nézetek átnevezésére; ehelyett ejtse el az objektumot, és hozza létre újra az új névvel.
Transact-SQL szintaxis konvenciók
Szemantika
Szintaxis az sp_rename
SQL Serverben és az Azure SQL Database-ben:
sp_rename [ @objname = ] 'object_name' , [ @newname = ] 'new_name'
[ , [ @objtype = ] 'object_type' ]
sp_rename
Az Azure Synapse Analytics (előzetes verzió) szintaxisa:
sp_rename [ @objname = ] 'object_name' , [ @newname = ] 'new_name'
, [ @objtype = ] 'COLUMN'
Szintaxis a sp_rename
Microsoft Fabricben:
sp_rename [ @objname = ] 'object_name' , [ @newname = ] 'new_name'
[ , [ @objtype = ] 'OBJECT' ]
Érvek
[ @objname = ] 'object_name'
A felhasználói objektum vagy adattípus aktuális minősített vagy nem minősített neve. Ha az átnevezendő objektum egy tábla egyik oszlopa, object_name a table.column vagyschema.table.column űrlapban kell lennie. Ha az átnevezni kívánt objektum index, object_name a table.index vagy a schema.table.index űrlapon kell lennie. Ha az átnevezni kívánt objektum kényszer, object_name az űrlapséma.constraint fájlban kell lennie.
Idézőjelek csak minősített objektum megadása esetén szükségesek. Ha egy teljesen minősített név van megadva, beleértve az adatbázis nevét is, az adatbázis nevének kell lennie az aktuális adatbázis nevének. object_namenvarchar(776), alapértelmezés nélkül.
[ @newname = ] 'new_name'
A megadott objektum új neve. new_name egyrészes névnek kell lennie, és be kell tartania az azonosítókra vonatkozó szabályokat. A newnamea sysname, alapértelmezés nélkül.
Az eseményindítók nevei nem kezdődhetnek # vagy ## karakterrel.
A következőkre vonatkozik: Raktár a Microsoft Fabricben:
- A sémanevek nem tartalmazhatnak
/
vagy\
végződhetnek.
. - A táblanevek nem tartalmazhatnak
/
vagy\
végződhetnek.
.
[ @objtype = ] 'object_type'
Az átnevezett objektum típusa.
object_typea varchar(13), alapértelmezett értéke NULL
pedig a fenti értékek egyike lehet.
Érték | Leírás |
---|---|
COLUMN |
Átnevezendő oszlop. |
DATABASE |
Felhasználó által definiált adatbázis. Az adatbázis átnevezésekor ez az objektumtípus szükséges. |
INDEX |
Felhasználó által definiált index. Az indexek statisztikával való átnevezése szintén automatikusan átnevezi a statisztikákat. |
OBJECT |
A sys.objectsban nyomon követett típusú elem. Az OBJECT például használható objektumok átnevezésére, beleértve a korlátozásokat (CHECK, FOREIGN KEY, PRIMARY/UNIQUE KEY), a felhasználói táblákat, az oszlopokat, a tárolt eljárásokat, a beágyazott táblaértékelt függvényeket, a táblaértékelt függvényeket és a szabályokat. |
STATISTICS |
A következőkre vonatkozik: SQL Server 2012 (11.x) és újabb verziók, valamint az Azure SQL Database. A felhasználó által explicit módon létrehozott vagy indexel implicit módon létrehozott statisztikák. Az index statisztikáinak átnevezése automatikusan átnevezi az indexet is. |
USERDATATYPE |
A CREATE TYPE vagy sp_addtype végrehajtásával hozzáadott, felhasználó által definiált CLR-típus. |
A következővonatkozik: Azure Synapse Analytics
- Az
sp_rename
Azure Synapse Analytics előzetes verziójában kötelező megadni,COLUMN
hogy az átnevezendő objektumtípus egy oszlop legyen, és mindig szerepelnie kell azsp_rename
utasításban. Egy oszlop csak akkor nevezhető át, ha nem terjesztési oszlop.sp_rename
csak egy felhasználói objektum átnevezéséreCOLUMN
használható.
A következőre vonatkozik: Microsoft Fabric
- A
sp_rename
Microsoft FabricOBJECT
raktárában az egyetlen támogatott érték a @objtype. - A
sp_rename
Microsoft FabricOBJECT
SQL Analytics-végpontja esetében a @objtype egyetlen támogatott értéke. A táblák és oszlopok nem nevezhetők át.
Kódértékek visszaadása
0
(sikeres) vagy nem nulla számot (hiba).
Megjegyzések
A következőkre vonatkozik: SQL Server (az összes támogatott verzió) és az Azure SQL Database:
sp_rename
automatikusan átnevezi a társított indexet, amikor egy ELSŐDLEGES KULCS vagy EGYEDI korlátozást átneveznek. Ha egy átnevezett index ELSŐDLEGES KULCS kényszerhez van kötve, az ELSŐDLEGES KULCS kényszert is automatikusan átnevezi asp_rename
rendszer.sp_rename
elsődleges és másodlagos XML-indexek átnevezésére használható.A tárolt eljárás, függvény, nézet vagy eseményindító átnevezése nem változtatja meg a megfelelő objektum nevét sem a sys.sql_modules katalógusnézet definícióoszlopában, sem pedig a OBJECT_DEFINITION beépített függvény használatával beszerzett. Ezért javasoljuk, hogy
sp_rename
ne használja ezeket az objektumtípusokat. Ehelyett helyezze el és hozza létre újra az objektumot az új nevével.
A következőkre vonatkozik: SQL Server (az összes támogatott verzió), az Azure SQL Database és az Azure Synapse Analytics:
Ha átnevez egy objektumot, például egy táblát vagy oszlopot, az nem nevez át automatikusan az adott objektumra mutató hivatkozásokat. Manuálisan kell módosítania az átnevezett objektumra hivatkozó objektumokat. Ha például átnevez egy táblaoszlopot, és az oszlopra hivatkozik egy eseményindító, módosítania kell az eseményindítót, hogy tükrözze az új oszlop nevét. A sys.sql_expression_dependencies használatával listázhatja az objektum függőségeit az átnevezés előtt.
Az oszlopok átnevezése nem frissíti automatikusan azoknak az objektumoknak a metaadatait, amelyek a táblából kiválasztják az összes oszlopot (a
*
használatával). Ha például átnevez egy táblaoszlopot, és az oszlopra nem sémakötésű nézet vagy függvény hivatkozik, amely SELECTs az összes oszlopot (a*
használatával), a nézet vagy függvény metaadatai továbbra is az eredeti oszlop nevét tükrözik. A metaadatok frissítése sp_refreshsqlmodule vagy sp_refreshviewhasználatával.Egy objektum vagy adattípus nevét csak az aktuális adatbázisban módosíthatja. A legtöbb rendszeradattípus és rendszerobjektum neve nem módosítható.
Ha több mint 128 karaktert használ az új névhez, csak az első 128 karaktert használja a rendszer, a többit pedig csonkolja.
A következőkre vonatkozik: Azure Synapse Analytics:
- Az Azure Synapse Analytics
sp_rename
előzetes verzióban érhető el dedikált SQL-készletekhez.
Engedélyek
Az objektumok, oszlopok és indexek átnevezéséhez alter engedély szükséges az objektumon. A felhasználótípusok átnevezéséhez CONTROL-engedély szükséges a típushoz. Az adatbázis átnevezéséhez a sysadmin vagy a dbcreator rögzített kiszolgálói szerepkörök tagságára van szükség. A főkönyvtáblák átnevezéséhez ALTER LEDGER-engedély szükséges.
Példák
Egy. Tábla átnevezése
Az alábbi példa átnevezi a SalesTerritory
táblát SalesTerr
a Sales
sémában.
USE AdventureWorks2022;
GO
EXECUTE sp_rename 'Sales.SalesTerritory', 'SalesTerr';
GO
B. Oszlop átnevezése
Az alábbi példa átnevezi a TerritoryID
tábla oszlopát a SalesTerritory
következőre TerrID
: .
USE AdventureWorks2022;
GO
EXECUTE sp_rename 'Sales.SalesTerritory.TerritoryID', 'TerrID', 'COLUMN';
GO
C. Index átnevezése
Az alábbi példa átnevezi az indexet a IX_ProductVendor_VendorID
következőre IX_VendorID
: .
USE AdventureWorks2022;
GO
EXECUTE sp_rename N'Purchasing.ProductVendor.IX_ProductVendor_VendorID', N'IX_VendorID', N'INDEX';
GO
D. Alias-adattípus átnevezése
Az alábbi példa átnevezi az Phone
alias adattípusát a következőre Telephone
: .
USE AdventureWorks2022;
GO
EXECUTE sp_rename N'Phone', N'Telephone', N'USERDATATYPE';
GO
E. Kényszerek átnevezése
Az alábbi példák átneveznek egy ELSŐDLEGES KULCS kényszert, egy CHECK kényszert és egy KÜLFÖLDI KULCS kényszert. Kényszer átnevezésekor meg kell adni azt a sémát, amelyhez a kényszer tartozik.
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. Statisztikák átnevezése
Az alábbi példa létrehoz egy elnevezett contactMail1
statisztikai objektumot, majd átnevezi a statisztikát NewContact
a használatával sp_rename
. A statisztikák átnevezésekor az objektumot "schema.table.statistics_name" formátumban kell megadni.
CREATE STATISTICS ContactMail1
ON Person.Person(BusinessEntityID, EmailPromotion)
WITH SAMPLE 5 PERCENT;
EXECUTE sp_rename 'Person.Person.ContactMail1', 'NewContact', 'Statistics';
Példák: Azure Synapse Analytics
G. Oszlop átnevezése
Az alábbi példa átnevezi a c1
tábla oszlopát a table1
következőre col1
: .
Megjegyzés:
Ez az Azure Synapse Analytics-funkció továbbra is előzetes verzióban érhető el dedikált SQL-készletekhez, és jelenleg csak a dbo
sémában lévő objektumokhoz érhető el.
CREATE TABLE table1 (c1 INT, c2 INT);
EXECUTE sp_rename 'table1.c1', 'col1', 'COLUMN';
GO
H. Objektum átnevezése
Az alábbi példa átnevezi a táblát dbo.table1
dbo.table2
a OBJECT
típus használatával.
EXECUTE sp_rename
@objname = 'dbo.table1',
@newname = 'table2',
@objtype = 'OBJECT';