sp_rename (Transact-SQL) (Polski)
- 14.10.2020
- 6 minut na przeczytanie
-
- m
- c
- M
- m
- r
-
+5
Dotyczy: SQL Server (wszystkie obsługiwane wersje) Azure SQL Database Azure Synapse Analytics
Zmienia nazwę obiektu utworzonego przez użytkownika w bieżącej bazie danych . Ten obiekt może być tabelą, indeksem, kolumną, aliasem lub typem zdefiniowanym przez użytkownika środowiska uruchomieniowego języka wspólnego (CLR) Microsoft .NET Framework.
Uwaga
W Azure Synapse Analytics, sp_rename jest w wersji zapoznawczej i można go używać tylko do zmiany nazwy kolumny w obiekcie użytkownika.
Uwaga
Zmiana dowolnej części obiektu name może zepsuć skrypty i procedury składowane. Zalecamy, aby nie używać tej instrukcji do zmiany nazw procedur składowanych, wyzwalaczy, funkcji zdefiniowanych przez użytkownika lub widoków; zamiast tego upuść obiekt i utwórz go ponownie z nową nazwą.
Konwencje składni języka Transact-SQL
Składnia
Argumenty
„nazwa_obiektu”
Jest bieżącą kwalifikowaną lub niekwalifikowaną nazwą obiektu użytkownika lub typu danych. Jeśli obiekt, którego nazwa ma zostać zmieniony, jest kolumną w tabeli, nazwa_obiektu musi mieć postać table.column lub schema.table.column. Jeśli obiekt, którego nazwa ma zostać zmieniony, jest indeksem, nazwa_obiektu musi mieć postać table.index lub schema.table.index. Jeśli obiekt, którego nazwa ma zostać zmieniony, jest ograniczeniem, nazwa_obiektu musi mieć postać schema.constraint.
Cudzysłowy są wymagane tylko wtedy, gdy określono kwalifikowany obiekt. Jeśli podano w pełni kwalifikowaną nazwę, w tym nazwę bazy danych, nazwą bazy danych musi być nazwa bieżącej bazy danych. nazwa_obiektu to nvarchar (776), bez wartości domyślnej.
„nowa_nazwa”
Jest nową nazwą dla określonego obiektu. nowa_nazwa musi być nazwą jednoczęściową i musi być zgodna z regułami dotyczącymi identyfikatorów. newname to sysname, bez wartości domyślnej.
Uwaga
Nazwy wyzwalaczy nie mogą zaczynać się od # ani ##.
Wartość | Opis |
---|---|
COLUMN | Kolumna, której nazwa ma zostać zmieniona. |
DATABASE | Baza danych zdefiniowana przez użytkownika. Ten typ obiektu jest wymagany podczas zmiany nazwy bazy danych. |
INDEX | Indeks zdefiniowany przez użytkownika. Zmiana nazwy indeksu ze statystykami powoduje również automatyczną zmianę nazwy statystyk. |
OBJECT | Element typu śledzony w sys.objects. Na przykład OBJECT może służyć do zmiany nazw obiektów, w tym ograniczeń (CHECK, FOREIGN KEY, PRIMARY / UNIQUE KEY), tabel użytkownika i reguł. |
STATISTICS | Dotyczy: SQL Server 2012 (11.x) i nowszych oraz Azure SQL Database. Statystyki utworzone jawnie przez użytkownika lub utworzone niejawnie za pomocą indeksu. Zmiana nazwy statystyki indeksu automatycznie zmienia również nazwę indeksu. |
USERDATATYPE | Typy zdefiniowane przez użytkownika CLR dodane przez wykonanie CREATE TYPE lub sp_addtype. |
„COLUMN” Dotyczy: Azure Synapse Analytics
In sp_rename (wersja zapoznawcza ) w przypadku usługi Azure Synapse Analytics COLUMN jest obowiązkowym parametrem określającym, że typ obiektu, którego nazwa ma zostać zmieniona, to kolumna. Jest to varchar (13) bez wartości domyślnej i zawsze musi być uwzględniony w instrukcji sp_rename (wersja zapoznawcza). Nazwę kolumny można zmienić tylko wtedy, gdy nie jest to kolumna dystrybucyjna.
Zwracane wartości kodu
0 (powodzenie) lub niezerowa liczba (niepowodzenie)
Uwagi
Dotyczy programu SQL Server (wszystkie obsługiwane wersje) i Azure SQL Database
sp_rename automatycznie zmienia nazwę skojarzonego indeksu po zmianie nazwy ograniczenia PRIMARY KEY lub UNIQUE. Jeśli indeks o zmienionej nazwie jest powiązany z ograniczeniem PRIMARY KEY, ograniczenie PRIMARY KEY jest również automatycznie zmieniane przez sp_rename.
Dotyczy SQL Server (wszystkie obsługiwane wersje) i można użyć Azure SQL Database
sp_rename aby zmienić nazwę podstawowego i pomocniczego indeksu XML.
Dotyczy programu SQL Server (wszystkie obsługiwane wersje) i Azure SQL Database.
Zmiana nazwy procedury składowanej, funkcji, widoku lub wyzwalacza nie spowoduje zmiany nazwy odpowiedniego obiekt w kolumnie definicji widoku katalogu sys.sql_modules lub uzyskany za pomocą funkcji wbudowanej OBJECT_DEFINITION. W związku z tym zaleca się, aby nie używać sp_rename do zmiany nazw tych typów obiektów. Zamiast tego upuść i ponownie utwórz obiekt pod nową nazwą.
Dotyczy SQL Server (wszystkie obsługiwane wersje), Azure SQL Database i Azure Synapse Analytics
Zmiana nazwy obiektu, takiego jak tabela lub kolumna nie zmieni automatycznie nazw odniesień do tego obiektu.Wszystkie obiekty, które odnoszą się do obiektu o zmienionej nazwie, należy ręcznie zmodyfikować. Na przykład, jeśli zmienisz nazwę kolumny tabeli i do tej kolumny odwołuje się wyzwalacz, musisz zmodyfikować wyzwalacz, aby odzwierciedlał nową nazwę kolumny. Użyj sys.sql_expression_dependencies, aby wyświetlić zależności obiektu przed zmianą jego nazwy.
Dotyczy SQL Server (wszystkie obsługiwane wersje), Azure SQL Database i Azure Synapse Analytics
Możesz zmienić nazwę obiektu lub typ danych tylko w bieżącej bazie danych. Nazwy większości typów danych systemowych i obiektów systemowych nie mogą być zmieniane.
Uprawnienia
Zmiana nazw obiektów, kolumn i indeksów wymaga uprawnienia ALTER do obiektu. Aby zmienić nazwy typów użytkowników, wymaga uprawnienia CONTROL do typu. Zmiana nazwy bazy danych wymaga członkostwa w stałych rolach serwera sysadmin lub dbcreator
Przykłady
A. Zmiana nazwy tabeli
Poniższy przykład zmienia nazwę tabeli SalesTerritory
na SalesTerr
w Sales
schemat.
B. Zmiana nazwy kolumny
Poniższy przykład zmienia nazwę kolumny TerritoryID
w tabeli SalesTerritory
na TerrID
.
C. Zmiana nazwy indeksu
Poniższy przykład zmienia nazwę indeksu IX_ProductVendor_VendorID
na IX_VendorID
.
D . Zmiana nazwy typu danych aliasu
Poniższy przykład zmienia nazwę typu danych Phone
na Telephone
.
E. Zmiana nazwy ograniczeń
Poniższe przykłady zmieniają nazwę ograniczenia PRIMARY KEY, ograniczenia CHECK i ograniczenia FOREIGN KEY. Podczas zmiany nazwy ograniczenia należy określić schemat, do którego należy ograniczenie.
F. Zmiana nazwy statystyk
Poniższy przykład tworzy obiekt statystyki o nazwie contactMail1, a następnie zmienia nazwę statystyki na NewContact przy użyciu sp_rename. Podczas zmiany nazwy statystyk obiekt należy określić w formacie schema.table.statistics_name.
Przykłady: Azure Synapse Analytics
G. Zmiana nazwy kolumny
Poniższy przykład zmienia nazwę kolumny c1
w tabeli table1
na col1
.