Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Thêm cột vào bảng hiện có trong cơ sở dữ liệu SQL Server

Giới thiệu

Bảng là một cấu trúc lôgic hai chiều và là phương tiện cơ bản để lưu trữ dữ liệu trong hệ quản trị cơ sở dữ liệu quan hệ. Định dạng 'hàng và cột' của nó rất giống cách tổ chức của bảng tính.

Mỗi bản ghi mới được đưa vào bảng là một hàng (còn được gọi là bản ghi hoặc bộ dữ liệu), trong khi các hàng được nhóm thành một tập hợp hữu hạn các cột (còn được gọi là trường hoặc thuộc tính). Mỗi cột có một tên và kiểu dữ liệu và nó dùng làm tham chiếu để hiển thị các tập kết quả khi truy vấn dữ liệu từ hệ thống cơ sở dữ liệu quan hệ.

Trong bài viết này, chúng tôi khám phá các tùy chọn hiện tại cho phép chúng tôi thêm các cột mới vào bảng hiện có trong cơ sở dữ liệu SQL Server. Trường hợp sử dụng có thể phát sinh trong nhiều trường hợp. Đặc biệt, nó xảy ra khi có các bản cập nhật cho một ứng dụng và họ yêu cầu thêm các cột mới.

Tạo bảng

Để bắt đầu tập hợp các thử nghiệm ngắn của chúng tôi, hãy tạo một bảng nhỏ với bốn cột chứa thông tin cơ bản về một số công ty:

-- Listing 1: Create New Table ntab
use AU
go
create table ntab (
ID INT identity (1,1)
, CompanyName varchar(100)
, CompanyAddress varchar(200)
, DateofIncorporation datetime
);

Thêm một cột

Để thêm một cột duy nhất vào ntab bảng, chúng tôi thực thi mã được cung cấp trong Liệt kê 2. Kết quả là một bảng năm cột, như được hiển thị trong Hình 1. Chúng tôi đã tạo siêu dữ liệu này về bảng của chúng tôi với sp_columns thủ tục được lưu trữ.

-- Listing 2: Add ManagingDirector Column to Empty Table

alter table ntab add ManagingDirector varchar(50);

exec sp_columns ntab;

Sử dụng mã trong Liệt kê 3, chúng tôi điền vào một bảng mới với 1000 hàng.

-- Listing 3: Add Column to Empty Table
insert into ntab values ('Simplex Technologies','Plot 121 Nova Ridge II, Appolonia City','20201023','Kenneth Igiri');
GO 1000

Sau đó, chúng tôi thêm một cột khác TaxIdentityNumber - chúng tôi có thể làm như vậy thành công mà không có chi phí hiệu suất rõ ràng:

-- Listing 4: Add Column to Populated Table

alter table ntab add TaxIdentityNumber varchar(20);

exec sp_columns ntab;

Thả hoặc Thêm Nhiều Cột sử dụng lệnh ALTER TABLE

Trong một câu lệnh duy nhất, chúng ta cũng có thể bỏ hoặc thêm cột. Quan trọng:Khi chúng tôi thả các cột khỏi bảng có dữ liệu, chúng tôi sẽ mất dữ liệu rất nhanh. Nó chắc chắn không phải là một lệnh để sử dụng trong quá trình sản xuất.

Lệnh ALTER TABLE là lệnh Ngôn ngữ Định nghĩa Dữ liệu (DDL) tương tự như TRUNCATE. Thao tác không được ghi lại trong nhật ký giao dịch và không thể khôi phục nó. Nếu bạn có lý do để làm điều đó trong quá trình sản xuất, bạn nên có một bản sao lưu để bạn có thể quay lại trạng thái trước đó.

-- Listing 5: Drop Column from Table

alter table ntab drop column ManagingDirector, TaxIdentityNumber;

alter table ntab add ManagingDirector varchar(50), TaxIdentityNumber varchar(20);

select * from ntab;

Quan trọng:Khi bạn cố gắng bỏ một cột có chỉ mục, nó sẽ trả về một lỗi (xem hình ảnh). Đầu tiên, bạn phải sao lưu và thả Chỉ mục.

Sử dụng GUI - Table Designer

Trước khi chúng tôi tiếp tục, hãy lưu ý rằng bạn cần đảm bảo sử dụng phiên bản SQL Server Management Studio mới nhất. Nếu có sự không khớp giữa phiên bản cơ sở dữ liệu và phiên bản SSMS của bạn, bạn sẽ gặp lỗi sau:

Để thay đổi cấu trúc bảng, hãy mở Trình thiết kế bảng trên SSMS:nhấp chuột phải vào bảng và nhấp vào Thiết kế.

Bạn sẽ thấy ntab chi tiết bảng:

Trong Trình thiết kế bảng, chúng tôi thêm tên cột mà chúng tôi muốn thêm và chỉ định Loại dữ liệu và khả năng vô hiệu như mong muốn.

Sau khi hoàn tất, chúng tôi lưu bảng bằng bất kỳ tùy chọn nào có sẵn. Ví dụ:tham khảo tùy chọn có sẵn trên menu thanh SSMS:

Có một cài đặt SQL Server Management Studio, cài đặt này có thể ngăn việc lưu bảng với các cột mới được thêm vào. Bạn có thể cần phải tắt cài đặt này:

Công cụ> Tùy chọn> Nhà thiết kế> Nhà thiết kế Bảng và Cơ sở dữ liệu

Trong nền, SQL Server thực thi cùng một SQL mà chúng tôi đã trình bày trước đó (Liệt kê 5). Chúng tôi đã trích xuất điều này bằng cách sử dụng SQL Profiler. Bạn có thể nhận cùng một dữ liệu với Sự kiện mở rộng:

Sau khi hoàn tất, chúng ta có thể thấy kết quả giống như trước đây:

dbForge Studio dành cho SQL Server

dbForge Studio cho SQL Server từ công ty Devart cung cấp một giao diện chức năng mạnh mẽ để tương tác với SQL Server. Vì giải pháp tương tự như SSMS, nó rất dễ vận hành. Nó kết nối liền mạch với phiên bản SQL Server và cho phép người dùng tương tác trơn tru với các đối tượng SQL Server. Bạn có thể tải xuống phiên bản nhanh tại đây .

Để sửa đổi một bảng trong dbForge Studio, hãy nhấp chuột phải vào bảng đó để xem các thuộc tính chi tiết.

Bạn thêm một cột mới theo cách giống như cách bạn làm trong Trình thiết kế bảng của SQL Server. Tuy nhiên, hãy lưu ý mức độ chi tiết được hiển thị cho bảng, bao gồm cả DDL bảng. Nó mạnh mẽ hơn nhiều so với tính năng có sẵn trong SSMS.

dbForge Studio tuân theo cùng quy tắc thêm cột vào bảng như SQL Server Management Studio. DDL cho bảng được cập nhật ngay sau khi bạn thêm một cột. Tuy nhiên, bạn phải nhấp vào LƯU để giữ các thay đổi:

Kết luận

Bài viết này trình bày các phương pháp chúng ta có thể sử dụng để thêm cột vào bảng hiện có trong SQL Server, cho dù bảng đó có dữ liệu trong đó hay không.

Chúng tôi cũng đã minh họa tác động của việc giảm cột khi bảng có dữ liệu. Chúng tôi đã chỉ ra rằng lệnh ALTER TABLE là lệnh DDL. Không có nhật ký và cũng không có tác động đáng kể đến hiệu suất. Sử dụng Trình thiết kế bảng để chèn các cột vào giữa các cột hiện có thay vì vào cuối danh sách cột.

Chúng tôi cũng đã xem xét chức năng Devart dbForge Studio 2019. Nó có một giao diện mạnh mẽ và thuận tiện hơn nhiều cho tác vụ này và các tác vụ tương tự khác. Nó cũng có thể cung cấp nhiều khả năng khác để làm cho việc quản lý cơ sở dữ liệu SQL Server dễ dàng hơn nhiều.

Tài liệu tham khảo

  1. Tác động đến hiệu suất của các lệnh ALTER TABLE
  2. Bảng thay thế trong T-SQL
  3. Tính năng Table Designer trong dbForge Studio dành cho SQL Server

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sự khác biệt giữa Scope_Identity (), Identity (), @@ Identity và Ident_Current () là gì?

  2. Đệ quy CTE để có được cấu trúc phân cấp cây

  3. Cách thêm hoặc thả cột bằng cách sử dụng GUI trong SQL Server - Hướng dẫn sử dụng SQL Server / T-SQL Phần 39

  4. Máy chủ SQL chọn các hàng riêng biệt chỉ sử dụng giá trị gần đây nhất

  5. Mã xác thực SQL Scripts