Tôi cần truy vấn SQL để thêm cột mới sau cột hiện tại, do đó cột sẽ được thêm theo thứ tự cụ thể.Truy vấn SQL để thêm cột mới sau cột hiện có trong SQL Server 2005
Vui lòng đề xuất tôi nếu có bất kỳ truy vấn ALTER
nào thực hiện điều đó.
Tôi cần truy vấn SQL để thêm cột mới sau cột hiện tại, do đó cột sẽ được thêm theo thứ tự cụ thể.Truy vấn SQL để thêm cột mới sau cột hiện có trong SQL Server 2005
Vui lòng đề xuất tôi nếu có bất kỳ truy vấn ALTER
nào thực hiện điều đó.
ALTER sẽ không làm điều đó bởi vì cột để không quan trọng để lưu trữ hoặc truy vấn
Nếu SQL Server, bạn phải sử dụng thiết kế SSMS Bảng để sắp xếp các cột của bạn, sau đó có thể tạo ra một kịch bản mà giọt và tái tạo lại bàn
Sửa Jun 2013
liên kết chéo vào câu trả lời của tôi ở đây: Performance/Space implications when ordering SQL Server columns?
Nếu bạn muốn thay đổi trật tự cho colu mns trong máy chủ Sql, Hiện tại không có cách nào trực tiếp để thực hiện điều này trong SQL Server.
Hãy xem http://blog.sqlauthority.com/2008/04/08/sql-server-change-order-of-column-in-database-tables/
Bạn có thể thay đổi thứ tự trong khi chỉnh sửa thiết kế cho bảng.
ALTER TABLE mytable
ADD COLUMN new_column <type>
AFTER existing_column
MSSQL (AFAIK) không cho phép bạn thay đổi bảng và thêm một cột sau một cột cụ thể. Đặt cược tốt nhất của bạn là sử dụng Sql Server Management Studio hoặc chơi xung quanh bằng cách thả và thêm lại bảng hoặc tạo bảng mới và di chuyển dữ liệu theo cách thủ công. không phải là rất duyên dáng.
Có thể.
Đầu tiên, chỉ cần thêm từng cột theo cách thông thường (làm cột cuối cùng).
Thứ hai, trong SQL Server Management Studio
Truy cập Công cụ => Tùy chọn.
Trong tab 'Nhà thiết kế' => 'Trình đơn bảng và trình thiết kế cơ sở dữ liệu', bỏ chọn tùy chọn 'Ngăn lưu thay đổi yêu cầu tạo lại bảng'.
Sau đó, nhấp chuột phải vào bảng của bạn và chọn 'Thiết kế'. Trong chế độ 'Thiết kế', chỉ cần kéo các cột để sắp xếp chúng.
Đừng quên lưu.
Đầu tiên thêm cột mới vào bảng cũ thông qua SSMStudio. Chuyển đến cơ sở dữ liệu >> bảng >> cột. Nhấp chuột phải vào các cột và chọn cột mới. Làm theo hướng dẫn. Sau đó, tạo bảng mới với các cột được sắp xếp theo ý muốn như sau:
select * into my_new_table from (
select old_col1, my_new_col, old_col2, old_col3
from my_old_table
) as A
;
Sau đó đổi tên các bảng như mong muốn thông qua SSMStudio. Chuyển đến cơ sở dữ liệu >> bảng >> chọn đổi tên.
Bạn nên chọn * từ mọi thứ, dấu chấm. Đây là lý do tại sao SSMS thêm mọi tên trường, ngay cả khi có hàng trăm trường, thay vì chọn *. Nó là cực kỳ không hiệu quả bất kể bảng lớn như thế nào. Nếu bạn không biết các trường là gì, nó vẫn còn hiệu quả hơn để kéo chúng ra khỏi cơ sở dữ liệu INFORMATION_SCHEMA hơn là chọn *.
Một truy vấn tốt hơn sẽ là:
SELECT
COLUMN_NAME,
Case
When DATA_TYPE In ('varchar', 'char', 'nchar', 'nvarchar', 'binary')
Then convert(varchar(MAX), CHARACTER_MAXIMUM_LENGTH)
When DATA_TYPE In ('numeric', 'int', 'smallint', 'bigint', 'tinyint')
Then convert(varchar(MAX), NUMERIC_PRECISION)
When DATA_TYPE = 'bit'
Then convert(varchar(MAX), 1)
When DATA_TYPE IN ('decimal', 'float')
Then convert(varchar(MAX), Concat(Concat(NUMERIC_PRECISION, ', '), NUMERIC_SCALE))
When DATA_TYPE IN ('date', 'datetime', 'smalldatetime', 'time', 'timestamp')
Then ''
End As DATALEN,
DATA_TYPE
FROM INFORMATION_SCHEMA.COLUMNS
Where
TABLE_NAME = ''
Phiên bản nào của SQL? (MysQl, SQL Server, v.v.) –