Thứ Hai, 24 tháng 7, 2023

Chỉnh sửa cấu trúc column trong SQL Server

Trong bài này mình sẽ hướng dẫn bạn cách sử dụng lệnh ALTER TABLE ALTER COLUMN để chỉnh sửa cấu trúc của column trong SQL Server, lệnh nãy hữu ích khi bạn muốn chỉnh sửa các thông số như: kiểu dữ liệu, kích thước dữ liệu, NULL và NOT NULL.

Mục lục

  • 1. Thay đổi kiểu dữ liệu của column
  • 2. Thay đổi kích thước của column
  • 3. Thay đổi NULL hoặc NOT NULL cho column

1. Thay đổi kiểu dữ liệu của column

Để thay đổi kiểu dữ liệu của column thì bạn sử dụng cú pháp sau:

1
2
ALTER TABLE table_name
ALTER COLUMN column_name new_data_type(size);

Trường hợp table đã có dữ liệu thì bạn cần phải chọn kiểu dữ liệu mới tương thích với kiểu dũ liệu cũ, nếu không bạn sẽ gặp lỗi và hành động thất bại.

Hãy xem ví dụ dưới đây.

Giả sử ta có bảng t1 có cấu trúc như sau:

1
CREATE TABLE t1 (c INT);

Bây giờ bổ sung một vài dòng dữ liệu bằng lệnh INSERT (sẽ học sau).

1
2
3
4
5
INSERT INTO t1
    VALUES
        (1),
        (2),
        (3);

Thay đổi kiểu dữ liệu của c từ INT sang VARCHAR, lệnh này hoạt động bình thường vì từ INT có thể chuyển sang VARCHAR.

1
ALTER TABLE t1 ALTER COLUMN c VARCHAR (2);

Mình sẽ thêm một dòng dữ liệu mới:

1
2
3
INSERT INTO t1
VALUES
    ('@');

Thay đổi kiểu dữ liệu từ VARCHAR sang INT, lệnh này sẽ bị lỗi vì ký tự @ không thể chuyển sang kiểu INT.

1
ALTER TABLE t1 ALTER COLUMN c INT;

Lỗi: Conversion failed when converting the varchar value '@' to data type int.

2. Thay đổi kích thước của column

Tương tự như ở trên, chỉ có một lưu ý là trường hợp column đã có dữ liệu thì bạn phải cân nhắc kích thước phải tương ứng, trường hợp tăng kích thước thì không sao nhưng giảm kích thước thì phải lưu ý.

Ví dụ: Giả sử ta có table sau.

1
CREATE TABLE t2 (c VARCHAR(10));

Tăng kích thước của c  lên thành 50.

1
ALTER TABLE t2 ALTER COLUMN c VARCHAR (50);<br />

Nếu bạn giảm kích thước và bị khắc với dữ liệu có sẵn thì sẽ nhận lỗi: String or binary data would be truncated.

3. Thay đổi NULL hoặc NOT NULL cho column

Cú pháp tương tự, chỉ có lưu ý như sau: Trường hợp table đã có dữ liệu và bạn muốn set từ NULL sang NOT NULL thì phải cập nhật tất cả những dòng dữ liệu nào có giá trị NULL sang rỗng trước khi thay đổi.

Giả sử có table sau.

1
CREATE TABLE t3 (c VARCHAR(50));

Bước 1: Lệnh cập nhật dữ liệu từ NULL sang rỗng

1
2
3
4
UPDATE t3
SET c = ''
WHERE
    c IS NULL;

Bước 2: Thay đổi từ NULL sang NOT NULL

1
ALTER TABLE t3 ALTER COLUMN c VARCHAR (20) NOT NULL;

Trên là một số cách sử dụng lệnh ALTER TABLE ALTER COLUMN để thay đổi cấu trúc của column trong SQL Server.

=============================
* KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE trực tiếp từ tôi giúp bạn bước đầu trở thành những chuyên gia DBA, đủ kinh nghiệm đi thi chứng chỉ OA/OCP, đặc biệt là rất nhiều kinh nghiệm, bí kíp thực chiến trên các hệ thống Core tại VN chỉ sau 1 khoá học.
* CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
* Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: https://www.youtube.com/@binhguru
👨 Tiktok: https://www.tiktok.com/@binhguru
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhguru
👨 Podcast: https://www.podbean.com/pu/pbblog-eskre-5f82d6
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội

=============================
oracle tutorial, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,sql tutorial, khóa học pl/sql tutorial, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail,oracle RAC, ASM, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, ms sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master