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

Cách thay đổi cột từ Null thành Không Null trong Bảng SQL Server - Hướng dẫn SQL Server / T-SQL Phần 52

Tình huống:

Bạn đang làm việc với tư cách là nhà phát triển SQL Server với một Ngân hàng. Họ có bảng Dbo.Customer trong cơ sở dữ liệu TechBrothersIT với định nghĩa bên dưới.

 Tạo bảng dbo.Customer (FirstName VARCHAR (50) Not Null, LastName VARCHAR (50), Age SmallInt, PhoneNumber CHAR ( 9), Ngày DOB, CHAR giới tính (1)) 
 
Như bạn nhận thấy rằng LastName có thể là Null. Đó là vấn đề. Công ty nhận thấy điều đó sau này và luôn muốn LastName có giá trị. Bạn được yêu cầu thực hiện phân tích và viết tập lệnh Alter để Thay đổi Cột từ Null thành Not Null. Những điều bạn sẽ cân nhắc hoặc những đề xuất mà bạn sẽ cung cấp?

Giải pháp:

Điều đầu tiên cần xem xét trong trường hợp này là tìm xem có giá trị nào đã được chèn vào bảng cho Last Name as Null hay không. Nếu đúng như vậy, bạn không thể thực sự tiếp tục và thay đổi cột từ Null thành Not Null. Nếu cố gắng, bạn sẽ gặp lỗi dưới đây.
Msg 515, Level 16, State 2, Line 14Không thể chèn giá trị NULL vào cột 'LastName', bảng 'TechBrothersIT.dbo.Customer'; cột không cho phép null. CẬP NHẬT không thành công.
Điều đó có nghĩa là chúng ta phải xử lý các giá trị Null trong cột này trước tiên. Bạn có thể nói chuyện với doanh nghiệp và hỏi họ muốn làm gì cho tất cả khách hàng có Họ là Null. Bạn có thể tìm thấy danh sách khách hàng có Họ là Null bằng cách sử dụng truy vấn dưới đây.
 Chọn * Từ dbo. 
 
Doanh nghiệp có thể đưa ra các đề xuất khác nhau, chẳng hạn như Cập nhật LastName thành Unknow ở đâu NullO hoặc Cập nhật Last Name để trống ('') nếu là NullO hoặc Cập nhật cột Last Name thành LNNP (Last Name Not Provided) Hoặc họ quay lại với khách hàng và lấy Họ của họ để cập nhật
Tùy thuộc vào các đề xuất, hãy tiếp tục và cập nhật các giá trị trong cột Họ. Giả sử chúng tôi quyết định cập nhật thành trống '', chúng tôi có thể sử dụng truy vấn bên dưới để cập nhật
 update dbo.Customerset LastName ='' trong đó LastName là Null 
 
 
Bây giờ bạn đã sẵn sàng để thay đổi cột trong bảng từ Null thành Not Null.
 Alter Table dbo.CustomerAlter Column LastName VARCHAR (50) Not Null 




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách tốt nhất để triển khai Hiệp hội đa hình trong SQL Server là gì?

  2. Quy trình được lưu trữ là gì và tại sao Quy trình được lưu trữ?

  3. Làm cách nào để in VARCHAR (MAX) bằng Print Statement?

  4. Kiểm tra không gian được sử dụng bởi một bảng trong SQL Server

  5. JSON_VALUE () Ví dụ trong SQL Server (T-SQL)