Błąd 0xc0202049: Zadanie przepływu danych 1: Błąd podczas wstawiania do kolumny tylko do odczytu

83

Używam kreatora importu i eksportu SQL Server 2008. Muszę zaimportować bazę danych. Otworzyłem kreator importu / eksportu serwera SQL i wykonałem następujące czynności: -

  1. jako miejsce docelowe wybrałem „Natywny klient serwera SQL 10”.

  2. następnie wybrałem kopiowanie danych z jednej lub więcej tabel lub widoku.

  3. SSIS działa natychmiast

ale mam następujące błędy,

Operacja zatrzymana ...

  • Inicjowanie zadania przepływu danych (powodzenie)

  • Inicjowanie połączeń (powodzenie)

  • Ustawienie polecenia SQL (powodzenie)

  • Ustawianie połączenia ze źródłem (powodzenie)

  • Ustawianie połączenia docelowego (powodzenie)

  • Weryfikacja (błąd)

Komunikaty Błąd 0xc0202049: Przepływ danych Zadanie 1: Błąd podczas wstawiania do kolumny tylko do odczytu „ActionID”. (Kreator importu i eksportu SQL Server)

Błąd 0xc0202045: Zadanie przepływu danych 1: Niepowodzenie weryfikacji metadanych kolumny. (Kreator importu i eksportu SQL Server)

Błąd 0xc004706b: Zadanie przepływu danych 1: „komponent” Miejsce docelowe - AudytActions ”(22)„ nie powiodło się sprawdzanie poprawności i zwrócił stan weryfikacji „VS_ISBROKEN”. (Kreator importu i eksportu SQL Server)

Wygląda na to, że nie mogę zaimportować kolumn tożsamości i kolumn ze znacznikami czasu, więc jak mogę wymusić import tych wartości?

john Gu
źródło

Odpowiedzi:

28

Przed datą importu wykonaj poniższe zapytanie, aby ustawić wstawianie tożsamości na:

SET IDENTITY_INSERT TableName ON

Następnie wykonaj operacje importu.

Po zaimportowaniu daty wykonaj poniższe zapytanie, aby wyłączyć wstawianie tożsamości:

SET IDENTITY_INSERT TableName OFF
Kishore
źródło
225

Z całym szacunkiem dla odpowiedzi Kishore, podejście to jest ważne, jeśli modyfikujesz pakiety. Ponieważ używasz kreatora importu / eksportu, prostszym podejściem byłoby zaznaczenie Enable Identity Insertpola wyboru na karcie Odwzorowania kolumn.

W Kreatorze importu eksportu, po wybraniu tabeli do skopiowania, kliknij Edit Mappings...przycisk

wprowadź opis obrazu tutaj

Na wyświetlonym ekranie kliknij Enable identity insertwłaściwość, a Twoje tożsamości zostaną zreplikowane.

wprowadź opis obrazu tutaj

Ten sam wynik netto, co wydawanie SET IDENTITY_INSERT TableName ONi WYŁĄCZANIE, ale odbywa się to automagicznie w czasie kompilacji.

billinkc
źródło
dzięki, problem z kolumnami tożsamości został rozwiązany, a teraz mam problemy z kolumnami ze znacznikami czasu. masz pomysł, co mogę z nimi zrobić?
john Gu
1
Znaczniki
Niall Connaughton
13
Jeśli importujesz wiele tabel, możesz wybrać wiele tabel z listy, a następnie kliknąć opcję Edytuj mapowania, aby za jednym kliknięciem zastosować opcję Włącz wstawianie tożsamości do wszystkich wybranych tabel.
pmartin
1
Rozwiązanie Kishore nie rozwiązało mojego problemu, ale ten, który oferujesz, tak. Wielkie dzięki.
MadJlzz
Zastanawiam się po wyeksportowaniu, czy trzeba to zrobić: SET IDENTITY_INSERT TableName OFF. Dzięki.
Kevin .NET,