Làm thế nào tôi có thể đạt được điều này trong sql giao dịch.Thay đổi bảng sau đó cập nhật
Tôi muốn thêm cột mới vào bảng hiện có và sau đó cập nhật nó bằng một số giá trị. Có thể làm điều đó trong một kịch bản sql hoặc tôi nên sử dụng các script riêng biệt?
Đây là một mẫu mã
ALTER TABLE my_table ADD my_new_column bit NULL;
UPDATE my_table SET my_new_column = 0;
Tôi biết rằng tôi đang làm văn bản trong khi cột vẫn không tồn tại do đó, thats lý do tại sao hai dòng sau không làm việc. Nhưng làm thế nào để đạt được điều này trong một kịch bản, tức là sử dụng một số chậm trễ hoặc làm thế nào để chắc chắn cột được tạo ra và sau đó ghi dữ liệu vào nó?
Tôi đã sử dụng IF EXISTS với lựa chọn từ bảng nhưng nó không hoạt động.
nhờ
Nếu tôi muốn cập nhật một số trường có giá trị khác 0, như 1 thì sao? Đã thử truy vấn này nó hoạt động tốt, nhưng tôi vẫn muốn sử dụng bản cập nhật sau đó. – Vlad
Bạn có thể thêm nhiều cột và ràng buộc mặc định theo cùng một cách. Ngoài ra, tốt nhất là nên thực hiện DDL trong một lô khác với DML để tránh phân tích các vấn đề (hoặc bằng cách thêm 'GO' giữa các câu lệnh hoặc bằng cách sử dụng' EXEC' phụ thuộc vào ngữ cảnh bạn cần thực hiện) –
lời khuyên. Có DDL nên được tách ra khỏi DML, luôn luôn. Trong trường hợp này, tôi cần kịch bản đơn giản để hoàn thành nhiệm vụ đơn giản. Dù sao tôi đã sử dụng câu trả lời này ở đây với GO tuyên bố và nó làm việc như tôi mong đợi http://stackoverflow.com/questions/1293638/sql-alter-table-then-modify-values – Vlad