Khi tôi tạo một bảng tạm thời bằng cách sử dụng một select into
trong SQL Server, có cách nào để chỉ định rằng một cột nên được nullable? Tôi có một quá trình nhiều bước mà tôi đang làm một bảng tạm thời bằng cách chọn rất nhiều cột (đó là lý do tại sao tôi không làm một create table #tmp (...)
). Sau khi tôi thực hiện bảng tạm thời đó, tôi đang cập nhật một số cột và một số các bản cập nhật đó có thể vô hiệu hóa một trường.Tạo một cột có thể vô hiệu bằng cách sử dụng SQL Server SELECT INTO?
Tôi biết tôi có thể làm một tuyên bố alter table alter column
để đạt được những gì tôi muốn, nhưng tôi tò mò về việc liệu có cách nào để xác định điều này trong chính bản thân số select
hay không. Tôi biết bạn có thể nội tuyến cast
các cột của bạn để có được kiểu dữ liệu mong muốn, nhưng tôi không thể thấy cách bạn chỉ định nullability.
'NULLIF' dường như hoạt động tốt khi sử dụng cột. Câu trả lời của bạn khiến tôi nghĩ thử 'COALESCE (col_name, null)' mà nó hoạt động phổ biến mà không cần phải tạo ra một giá trị không thể. Tuy nhiên, có một tình huống khi không xuất hiện để làm việc, và đó là khi bạn đang chọn một chữ như 'select nullif ('asdf', '~') làm Giá trị thành _Test'. NULLIF/COALESCE có vẻ như nó đủ tốt, nhưng có cách nào khác hoạt động trong mọi tình huống không? – mattmc3
@ mattmc3 - một số nhà khai thác phá vỡ (ví dụ, ABS hoạt động int eh ví dụ ở trên), nhưng NULLIF là không đủ. –