4

SQL 2005, 600,000,000 행.SQL Server에서 INT를 BIGINT로 변환

현재 ID라는 ID 열의 LocationID에 데이터 유형 INT를 사용하는 위치라는 테이블이 있습니다. 이 데이터 형식을 BIGINT로 변환하려고합니다.

다음 스크립트는 PK 열에 삽입하도록 허용해야하지만 여기에서 양식을 진행하는 방법을 잘 모르겠습니다.

내가 생각
CREATE TABLE [dbo].[Location](
    [LocationID] [int] IDENTITY(1,1) NOT NULL, 
    [JourneyID] [int] NULL, 
    [DeviceID] [int] NOT NULL, 
    [PacketTypeID] [int] NULL, 
    [PacketStatusID] [int] NULL, 
CONSTRAINT [Location_PK] PRIMARY KEY CLUSTERED 
(
    [LocationID] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] 
) ON [PRIMARY] 

GO 
ALTER TABLE [dbo].[Location] WITH CHECK ADD CONSTRAINT [Device_Location_FK1] FOREIGN KEY([DeviceID]) 
REFERENCES [dbo].[Device] ([DeviceID]) 
GO 
ALTER TABLE [dbo].[Location] CHECK CONSTRAINT [Device_Location_FK1] 
GO 
ALTER TABLE [dbo].[Location] WITH CHECK ADD CONSTRAINT [PacketStatus_Location_FK1] FOREIGN KEY([PacketStatusID]) 
REFERENCES [dbo].[PacketStatus] ([PacketStatusID]) 
GO 
ALTER TABLE [dbo].[Location] CHECK CONSTRAINT [PacketStatus_Location_FK1] 
GO 
ALTER TABLE [dbo].[Location] WITH CHECK ADD CONSTRAINT [PacketType_Location_FK1] FOREIGN KEY([PacketTypeID]) 
REFERENCES [dbo].[PacketType] ([PacketTypeID]) 
GO 
ALTER TABLE [dbo].[Location] CHECK CONSTRAINT [PacketType_Location_FK1] 

하나의 옵션은 다음 새 테이블에 데이터를 복사 이전 테이블을 삭제하고 우리가 그 것이다 제약이 있지만 새 이름을 변경하는 것입니다 : 아래

SET IDENTITY_INSERT LOCATION ON /*allows insert into the identity column*/` 

SET IDENTITY_INSERT LOCATION OFF /*Returns the identity column to initial state*/` 

위치 테이블 스크립트를 생성 이 일을하기 위해 떨어 뜨려야합니다.

답변

5

새로운 테이블에 대한 아이디어는 계속 될 것입니다.

테이블 디자이너를 사용하여 데이터 형식을 변경하면 SSMS에서 생성하는 스크립트를 개발 서버에서 볼 수 있습니다. 좋은 시작입니다. 그러면 나중에 트리거와 제약 조건이 추가됩니다.

레드 게이트 SQL 같은 도구는 비교가 당신이 모든 것이 응답에 대한 확인을

+0

감사 생성 된 것을 확인할 수 있습니다 .... 당신이 무엇을 의미하는지 확실하지 않았다. 이 기사 : http://lisazhou.wordpress.com/2008/07/16/sql-server-generate-change-script-from-table-design-view/ 설명. 그러나, 스크립트 옵션을 선택할 때 텍스트 파일을 저장하려고하면 : 변경 사항 저장은 허용되지 않습니다.를 참조하십시오. 변경 사항을 적용하려면 다음 표를 삭제하고 다시 작성해야합니다. 다시 만들 수없는 테이블을 변경했거나 테이블을 다시 만들어야하는 변경 내용 저장 안 함 옵션을 사용하도록 설정했습니다. 결과 파일에는 수정안을 작성하는 스크립트가 없습니다. –

+0

죄송합니다. 데이터 유형을 변경하기 전에 제약 조건을 먼저 삭제하고 SCRIPT (을)를 볼 수 있습니다. 그게 도와 줘서 고마워. –

관련 문제