Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak zmienić rozmiar kolumny w SQL Server (T-SQL)

Jeśli używasz SQL Server i chcesz użyć T-SQL do zmiany rozmiaru istniejącej kolumny, ten artykuł może pomóc.

Przez „zmianę rozmiaru istniejącej kolumny” mam na myśli zmianę rozmiaru danych. Załóżmy na przykład, że masz varchar(255) ale chcesz zwiększyć jego rozmiar do varchar(500) . Oto, co musisz zrobić w takim przypadku.

Oświadczenie ALTER TABLE

Jeśli robisz to z T-SQL, musisz użyć ALTER TABLE oświadczenie. Ta instrukcja umożliwia zmianę definicji tabeli po jej utworzeniu (i może również zawierać dane).

Oto przykład zmiany rozmiaru istniejącej kolumny:

ALTER TABLE Tasks
    ALTER COLUMN TaskDescription varchar(500);
GO

Ten przykład modyfikuje Tasks tabeli poprzez zmianę rozmiaru TaskDescription kolumna.

To oczywiście zakłada, że ​​kolumna (i tabela) już istnieją w bazie danych. W przeciwnym razie pojawi się błąd.

Sprawdź wyniki

Możesz sprawdzić rozmiar kolumny, uruchamiając zapytanie względem INFORMATION_SCHEMA.COLUMNS . Tak:

USE Solutions;
SELECT 
    COLUMN_NAME,
    DATA_TYPE,
    CHARACTER_MAXIMUM_LENGTH,
    CHARACTER_OCTET_LENGTH
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Tasks';

Wynik:

COLUMN_NAME      DATA_TYPE  CHARACTER_MAXIMUM_LENGTH  CHARACTER_OCTET_LENGTH
---------------  ---------  ------------------------  ----------------------
TaskId           int        null                      null                  
TaskName         nvarchar   255                       510                   
TaskDescription  varchar    500                       500

W takim przypadku przełączamy się na właściwą bazę danych (Solutions ), następnie wysyłamy zapytanie INFORMATION_SCHEMA.COLUMNS aby uzyskać informacje o kolumnach w Tasks stół. Moglibyśmy zawęzić to do kolumny, która nas interesuje, gdyby w tabeli było zbyt wiele kolumn, ale w tym przykładzie trzy kolumny nie stanowią problemu.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. DevOps:DBA lub programista – jak zachować równowagę

  2. Uzyskaj 1 górny wiersz z każdej grupy

  3. SQL, jak łączyć wyniki?

  4. Kiedy powinienem użyć CROSS APPLY zamiast INNER JOIN?

  5. Jak sprawić, by rozszerzenie SQLSRV działało z PHP, skoro MSSQL jest przestarzały?