2013-02-21 2 views
1

SQL Server 2008 관리 Studio Generate Scripts... 마법사를 사용하여 데이터베이스의 다양한 테이블에 대한 데이터 전용 스크립트를 생성하고 있습니다.SQL Server 2008 데이터 스크립트 생성 및 기존 레코드 확인

문제는 많은 수의 insert 문을 생성하지만 if exists 논리를 포함하지 않는다는 것입니다. 그래서, 이미 존재하는 레코드에 대한 기본 키 예외를 얻고 있습니다.

레코드가 이미 있는지 여부를 확인하는 테이블의 데이터를 스크립팅하는 방법을 아는 사람이 있습니까?

답변

1

가장 쉬운 방법은 새 기본 키에 고유 한 값을 가진 행만 선택하고 해당보기에서 데이터 스크립트를 생성하는보기를 만드는 것입니다.

원본 테이블에 대한 CREATE TABLE 스크립트와 새로운 기본 키의 표시 방법을 알려 주면 그러한보기를 만드는 방법을 보여줄 수 있습니다.

+0

네가하는 말을 이해합니다. 많은 추가 작업없이 나를 위해 정말 빨리 할 수있는 마법사를 기대하고 있었다. 다른 해결책을 찾을 수 없다면 이것은 나의 대체 계획이 될 것입니다. –

0

일부 표는 참조 된대로 표에 데이터를 삽입하기 전에 데이터가 존재해야하므로 FK 오류가 있음을 의미합니다.

스크립트 생성 마법사는 삽입 스크립트 집합을 제공하지만 시퀀스를 지정하지는 않습니다. 일단 자식 테이블 삽입 스크립트는 부모 테이블보다 먼저 순서가 지정되어야합니다. 부모 테이블에 채워진 모든 참조 된 테이블에 값이 있습니다.

+0

아니요 시퀀스가 ​​문제가 아니며 외래 키도 아닙니다. 처음으로 자동 생성 스크립트를 실행하면 모든 것이 정상입니다. 두 번째로 실행하면 기본 키가 이미 테이블에 있으므로 모든 것이 터집니다. 자동 생성 된 코드가 행이 이미 존재하는지 여부를 확인하기위한 추가 로직을 넣기를 원합니다. –

+0

그래서 insert 문에서 exists()를 생성해야합니까? – Wali

+0

그게 바로 내가하려는 일입니다. 그리고 많은 코드를 작성하지 않고 마법사를 통해 신속하게 처리하려고합니다. 모든 아이디어 또는 도구에 대해 알고 있습니까? –