Với SQL sau:Rắc rối cập nhật cột mới sau khi thêm nó
IF EXISTS (SELECT * FROM sys.columns WHERE name = 'NewFieldName' AND object_id = OBJECT_ID('dbo.MyTableName'))
RETURN
-- Add NewFieldName column to part of the Summer 2012 release cycle.
ALTER TABLE dbo.[MyTableName] ADD
[NewFieldName] SmallINT NOT NULL
CONSTRAINT DF_MyTableName_NewFieldName DEFAULT (2)
UPDATE [MyTableName] SET NewFieldName = 1 WHERE [Name] = 'FindMe' --Update one specific value
Tạo thông báo lỗi sau:
Msg 207, Level 16, State 1, Line 10 không hợp lệ tên cột ' NewFieldName '.
Tôi chắc rằng tôi thiếu một số thứ cơ bản, nhưng cố gắng đặt "GO" sau khi thay đổi làm cho UPDATE chạy mọi lúc và tôi không muốn làm điều đó.
Làm cách nào để cấu trúc câu lệnh này để kiểm tra xem cột có tồn tại hay không và nếu nó không thêm cột và sau đó đặt giá trị như được nêu trong báo cáo UPDATE của tôi?
tuyên bố cập nhật đầu tiên là dự phòng, bạn đặt tất cả các bản ghi thành 2 theo 'mặc định (2)' –
Các báo cáo ở trên phù hợp với tôi. Làm thế nào bạn thực hiện chúng? Cột 'NewFieldName' có được tạo không? –
@AmirIsmail sai. Khi tôi chạy báo cáo ALTER, trường được tạo nhưng mặc định không được đặt cho các bản ghi hiện có. Có thể có một cách khác để viết ALTER để làm điều đó; nhưng cấu trúc hiện tại không đặt giá trị mặc định cho các hàng hiện có. – ray