Bạn không thể làm điều này chính xác trong một câu lệnh duy nhất (hoặc hàng loạt) và có vẻ như công cụ bạn đang sử dụng không hỗ trợ GO
làm dấu phân cách hàng loạt.
Bạn có thể sử dụng EXEC
để chạy nó trong một lô con.
ALTER TABLE A
ADD c1 INT, c2 VARCHAR(10);
EXEC('
UPDATE A
SET c1 = 23,
c2 = ''ZZXX'';
');
NB:Tất cả các dấu ngoặc kép trong truy vấn cần được nhân đôi lên như trên để thoát chúng bên trong một chuỗi ký tự.
Hoặc cách khác, bạn có thể đạt được kết quả tương tự trong một câu lệnh duy nhất với sự hỗ trợ của một số ràng buộc mặc định.
ALTER TABLE A
ADD c1 INT NULL CONSTRAINT DF_A_c1 DEFAULT 23 WITH VALUES,
c2 VARCHAR(10) CONSTRAINT DF_A_c2 NULL DEFAULT 'ZZXX' WITH VALUES;
Nhưng điều này không hoàn toàn giống với truy vấn ban đầu vì các ràng buộc mặc định sẽ bị bỏ lại và có thể cần được loại bỏ.