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.

Zobacz też

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *