가능한 중복 : 테이블의 특정 위치에 열을 추가하는 방법은 무엇입니까?
SQL Server 2008 : Cannot Insert new column in the middle position and change data type
가능한 중복 : 테이블의 특정 위치에 열을 추가하는 방법은 무엇입니까?
SQL Server 2008 : Cannot Insert new column in the middle position and change data type
되지 않음 ..
나는 가장 좋은 방법은 테이블의 끝 부분에 열을 추가하고 열 ..다른 옵션의 원하는 순서로 뷰를 생성하는 것입니다 생각합니다. .
는 임시 테이블의 모든 데이터를 넣고 올바른 열 순서와 실제 테이블을 다시 다음 임시 테이블
스크립트에서이 작업을 수행 할 빠른 방법은 없습니다에서 실제 테이블에 데이터를 다시 삽입 기껏해야 당신은 그것을 자동화 할 수있다. 기본적으로 새 테이블 스키마 (원하는 위치에 새 열 포함)를 가져 와서 old에서 new으로 모든 데이터를 삽입하고 이전 테이블을 삭제 한 다음 저장 프로 시저를 사용하여 새 테이블의 이름을 old로 바꿉니다 . 다른 사람들이 제대로 불구하고 지적으로
create table [NewTable]
(
[old_column_1] int
,[new_column_1] varchar(max) -- new col at location
,[old_column_2] int
);
insert into [NewTable] ([old_column_1], [old_column_2])
select [old_column_1], [old_column_2] from [OldTable] (nolock);
drop table [OldTable];
sp_rename '[NewTable]', '[OldTable]';
, 당신의 열의 위치는 데이터베이스에 아무런 차이가 없습니다 만, 거기에이 여러 개인 이유 달성하기 위해 인간의 욕망이며, 그래서 당신은 몇 가지 옵션이 있습니다.
** BTW : ** 관계형 모델에서 열의 순서는 중요하지 않으므로 데이터베이스 디자인에서 해당 순서를 고려하지 않아야합니다. –
@MahmoudGamal -이 작업을 수행 할 수있는 기능이 필요합니다. (여기에는 이유가 있습니다.) (https://connect.microsoft.com/SQLServer/feedback/details/739788/alter-table-syntax-for-changing- –
@ Martinsmith- 좋아, 나는 그것을 표결했다. –