LƯU Ý:Câu trả lời này dành cho SQL Server. oracle thẻ đã được thêm vào câu hỏi sau câu trả lời này
Tôi sẽ giả định rằng bảng của bạn có IDENTITY
cột đó cũng là khóa chính, theo nguyên tắc của thiết kế tốt. Cũng giả sử rằng nó không không có các cột được tính toán (hoặc dấu thời gian hoặc bất kỳ loại nào sẽ yêu cầu nhiều thao tác hơn). Cuối cùng, hãy giả sử rằng bạn biết ít nhất tên của cột ID này, là tiêu chuẩn, ví dụ:"id
".
Bạn có thể sử dụng trình tự này:
SELECT * INTO #tmp FROM tbl WHERE id = @copyfrom;
ALTER TABLE #tmp DROP COLUMN id;
UPDATE #tmp SET
column1 = ...,
column2 = ...,
column3 = ...; --- the subset of columns you want to change
INSERT tbl SELECT * FROM #tmp;