2010-10-19 18 views
5

Tôi muốn biết nếu có một cách để thêm một cột vào một bảng SQL Server sau khi nó được tạo ra và ở một vị trí cụ thể?Thêm Cột trên Máy chủ SQL vào Địa điểm Cụ thể?

Cảm ơn.

+2

Đáng buồn là không, bạn có thể xem cách Management Studio thực hiện điều đó bằng cách thêm cột của bạn và lưu bản sao của tập lệnh thay đổi. – Kane

+1

Và bạn không nên dựa vào thứ tự của các cột trong bảng cho đầu ra của bạn, bạn đang thiết lập chính mình với mã mong manh. Như đã đề cập bên dưới, chỉ định các cột (và thứ tự của chúng) trong lựa chọn – BlackICE

Trả lời

1

với SQL Server Management Studio bạn có thể mở bảng trong thiết kế và kéo và thả các cột bất cứ nơi nào bạn muốn

1

Như Kane nói, nó không thể theo một cách trực tiếp. Bạn có thể xem cách Management Studio làm điều đó bằng cách thêm một cột trong chế độ thiết kế và kiểm tra kịch bản thay đổi.

Nếu cột không ở vị trí cuối cùng, tập lệnh về cơ bản sẽ giảm bảng và tạo lại bảng, với cột mới ở vị trí mong muốn.

2

Cách an toàn nhất để thực hiện việc này là.

  • Tạo bảng mới của bạn với thứ tự cột chính xác
  • Sao chép dữ liệu từ bảng cũ.
  • Thả Bảng Cũ.
2

Cách duy nhất an toàn làm điều đó đang tạo ra một bảng mới (với cột nơi bạn muốn nó), di chuyển dữ liệu, thả các bảng ban đầu, và đổi tên bảng mới với tên ban đầu.

Đây là những gì Management Studio làm cho bạn khi bạn chèn cột.

8

Bạn có thể làm điều đó trong Management-Studio. Bạn có thể kiểm tra cách thức này được thực hiện bằng cách tạo kịch bản lệnh SQL TRƯỚC KHI lưu thay đổi. Về cơ bản nó đạt được bằng cách:

  • loại bỏ tất cả các phím nước ngoài
  • tạo ra một bảng mới với cột thêm
  • sao chép tất cả dữ liệu từ cũ vào bảng mới
  • thả bảng cũ
  • đổi tên bảng mới với tên cũ
  • tạo lại tất cả các khóa ngoài
0

Số

Về cơ bản, SSMS đằng sau hậu trường sẽ sao chép bảng, ràng buộc, vv, thả bảng cũ và đổi tên mới. Lý do rất đơn giản - các cột không có nghĩa là được sắp xếp (cũng không phải là hàng), vì vậy bạn luôn muốn liệt kê những cột nào bạn muốn trong tập kết quả (chọn * là một chút hack)

1

Trong cột bảng cơ sở dữ liệu không có thứ tự.

Viết đúng đắn lựa chọn công bố và tạo một cái nhìn

5

Ngoài tất cả các câu trả lời khác, hãy nhớ rằng bạn có thể sắp xếp lại và đổi tên cột trong quan điểm. Vì vậy, nếu bạn thấy cần lưu trữ dữ liệu ở một định dạng nhưng trình bày dữ liệu trong một định dạng khác, bạn có thể chỉ cần thêm cột vào cuối bảng và tạo một chế độ xem bảng duy nhất để sắp xếp lại và đổi tên các cột bạn muốn hiển thị.Trong hầu hết mọi trường hợp, chế độ xem này sẽ hoạt động chính xác như bảng gốc.

+0

+1 của bạn cho một ý tưởng tuyệt vời – Kane

+0

+1 Đối với suy nghĩ thay thế. –

+1

Nếu bạn đủ OCD để muốn một thứ tự cột cụ thể, thì tôi cho rằng bạn sẽ tận hưởng các đối tượng phụ để quản lý ... – gbn

2

Khi người khác đã chỉ ra rằng bạn có thể thực hiện việc này bằng cách tạo bảng tạm thời di chuyển dữ liệu và thả bảng gốc rồi đổi tên bảng khác. Đây là điều ngu ngốc để làm mặc dù. Nếu bảng của bạn là lớn, nó có thể rất tốn thời gian để làm điều này và người dùng sẽ bị khóa trong quá trình này. Đây là cái gì đó bạn KHÔNG BAO GIỜ muốn làm cho bất kỳ bảng trong sản xuất.

Hoàn toàn không có lý do gì để chăm sóc thứ tự các cột trong bảng vì bạn không nên dựa vào thứ tự cột (nếu người khác làm điều ngu ngốc này). Không có truy vấn nào nên sử dụng các vị trí chọn * hoặc thứ tự để nhận cột. Nếu bạn đang làm điều này ngay bây giờ, đây là mã bị hỏng và cần được sửa ngay lập tức vì kết quả không phải lúc nào cũng như mong đợi. Ví dụ: nếu bạn chèn cột vào nơi bạn muốn và một người khác đang sử dụng chọn * cho báo cáo, đột nhiên số lượng một phần hiển thị tại vị trí được sử dụng để giữ Giá.

Bằng cách làm những gì bạn muốn làm, bạn có thể phá vỡ nhiều hơn bạn khắc phục bằng cách đặt cột nơi bạn muốn. Thứ tự cột trong bảng phải luôn không liên quan. Bạn không nên làm điều này mỗi lần bạn muốn cột xuất hiện theo thứ tự differnt.

Các vấn đề liên quan