Tôi đang sử dụng SQL Server Management Studio 2016 để xuất dữ liệu giữa các cơ sở dữ liệu. Đặc biệt, lần này, tôi đang sử dụng tùy chọn "viết truy vấn để chỉ định dữ liệu cần truyền", nhưng là một phần của quy trình này, tôi muốn sửa đổi dữ liệu được xuất. --- mục tiêu là thỏa mãn null - & gt; không tình hình null. Một cột trong bảng nguồn của tôi được đặt để cho phép null và cột bảng đích sẽ không cho phép null. Tôi không thể thay đổi bảng đích / thả / tạo lại nó, vì vậy tôi muốn tập lệnh trong một giá trị defult bất kỳ vị trí nào mà cột mục tiêu là NULL.
Bắt đầu từ màn hình với tùy chọn "viết truy vấn để chỉ định dữ liệu cần truyền", tôi đang sử dụng một tiêu chuẩn SELECT * FROM [source table]
Tiếp theo, trong phần "Chọn bảng nguồn và dạng xem", tôi duyệt để chỉnh sửa ánh xạ, do đó tôi có thể "chỉnh sửa sql" và sửa đổi mã đang tạo bảng đích của mình.
Khi tôi nhấp vào "Chỉnh sửa SQL", tôi nhận được cú pháp cho bảng của câu lệnh chọn của tôi. Đây có phải là nơi tôi sẽ xây dựng một tuyên bố cập nhật?
Câu lệnh SQL tạo bảng có cú pháp CREATE TABLE [dbo].[Query]([Column 1]nvarchar(50) NOT NULL
Tôi muốn thêm một tuyên bố cập nhật để thực hiện logic này: UPDATE TABLE [dbo].[Query] SET [Column 1] = 'default value' WHERE [Column 1] IS NULL
Đây có phải là nơi thích hợp trong trình hướng dẫn nhập / xuất để thực hiện việc này không? tôi sẽ đánh giá rất cao một hoặc hai gợi ý.
Cảm ơn, whalen
SELECT *
và chỉ định các cột rõ ràng. Ngoài ra, sử dụng mộtCASE
câu lệnh cho cột không cho phépNULL
vàWHEN col IS NULL THEN <value>
. CóISNULL()
chức năng quá. Làm cho câu lệnh chọn mang lại kết quả mong đợi cho những gì bạn cần nhập mà không cần thêm gì nữa. Nhận truy vấn của bạn theo thứ tự và nhận được kết quả mong đợi, sau đó chỉ cần chạyUPDATE
các câu lệnh.