2012-02-20 13 views
30

Potrzebuję pomocy z kolumną tabeli SQL Server. Próbuję zmienić nazwę kolumny, ale to nie działa.jak zmienić nazwę kolumny za pomocą T-SQL

USE COST_mesta_test 
GO 
EXEC sp_rename '[dbo].[1965$].obec' , 'people' , 'COLUMN' 
GO 

Próbowałem różnych kombinacji nawiasach [] i ścieżkę do stołu "obec" (na przykład: 1965.obec; 1965 $ .obec, 1965. [obec]; itd.) Ale wciąż otrzymuję błąd:

Either the parameter @objname is ambiguous or the claimed @objtype (COLUMN) is wrong.

Odpowiedz

54

Nie bardzo rozumiem, w jaki sposób skonfigurowany jest Twój stół - np. nazwa tabeli, nazwa kolumny itp - więc jest to przykład, w jaki sposób proc pracuje kolumna zmienia nazwę:

Gdybym miał tabelę tak:

CREATE TABLE [dbo].[Company](
[ID] [int], 
[CompanyName] [varchar](20) 
) 

i chciał zmienić kolumnę [CompanyName], to jest polecenie:

EXEC sys.sp_rename 
    @objname = N'dbo.Company.CompanyName', 
    @newname = 'Name', 
    @objtype = 'COLUMN' 

Podejrzewam, że twój pierwszy argument nie jest poprawny.

Z dokumentacji (sp_rename (Transact-SQL))

If the object to be renamed is a column in a table, object_name must be in the form table.column or schema.table.column. If the object to be renamed is an index, object_name must be in the form table.index or schema.table.index

7

Można również zmienić nazwę kolumny, klikając prawym przyciskiem myszy na nazwę kolumny, a następnie wybierając „zmiana nazwy” opcję w Eksploratorze obiektów.

+0

+1 za pokazanie sposobu zmiany nazwy za pomocą interfejsu użytkownika. –

+1

Zwykle nie jest to dobry pomysł, jeśli chcesz tworzyć skrypty migracji (które często robisz). –

+0

Pytanie dotyczy zmiany nazwy za pomocą T-SQL, a nie obiektu explorer! To nie jest odpowiedź. – QMaster

Powiązane problemy