Tôi đang cố tạo chế độ xem nơi tôi muốn cột chỉ đúng hoặc sai. Tuy nhiên, có vẻ như không có vấn đề gì tôi làm, SQL Server (2008) tin rằng cột bit của tôi bằng cách nào đó có thể là null.Cách tạo cột dạng xem KHÔNG NULL
Tôi có bảng có tên "Sản phẩm" có cột "Trạng thái" là INT, NULL
. Theo quan điểm, tôi muốn trả về một hàng cho mỗi hàng trong Product, với cột BIT được đặt thành true nếu cột Product.Status bằng 3, nếu không trường bit sẽ là false.
Ví dụ SQL
SELECT CAST(CASE ISNULL(Status, 0)
WHEN 3 THEN 1
ELSE 0
END AS bit) AS HasStatus
FROM dbo.Product
Nếu tôi lưu truy vấn này như một cái nhìn và nhìn vào các cột trong Object Explorer, cột HasStatus được thiết lập để BIT, NULL
. Nhưng nó không bao giờ là NULL. Có một số phép thuật SQL trick tôi có thể sử dụng để buộc cột này là NOT NULL
.
Chú ý rằng, nếu tôi loại bỏ các CAST()
quanh CASE
, cột được thiết lập một cách chính xác như NOT NULL
, nhưng sau đó loại của cột được thiết lập để INT
, mà không phải là những gì tôi muốn. Tôi muốn nó là BIT
. :-)
@Gunder: +1, Chào mừng bạn đến với StackOverflow. Tôi đã định dạng câu hỏi của bạn, hãy xem nó để tìm hiểu về định dạng :) –
Ahh, tôi cần thêm một ngắt dòng nữa trước mã. Cảm ơn. :-) –