Skocz do zawartości

Ranking

Popularna zawartość

Treść z najwyższą reputacją w 02.01.2022 uwzględniając wszystkie działy

  1. Dziękuję bardzo za odpowiedz. Udało mi się przywrócić podmiot do życia. Skrypt okazał się bardzo pomocny, jednak sam problem rozwiązałem trochę inaczej. Po pierwsze faktycznie ten felerny podmiot miał ustawioną inną schema niż dbo w mapowaniu użytkownika (wszystkie trzy podmioty korzystają z tego samego usera do połączenia do bazy) i tabele ze skryptu zostały utworzone w tym schema a nie w dbo. Wracając do naprawy (może komuś się przyda) to tak: 1. zmienić default_schema użytkownikowi na dbo 2. utworzyć w schemacie dbo trzy tabele ze skryptu 3. przekopiować do nich rekordy z istniejących tabel, które zostały utworzone podczas aktualizacji 4. usunąć tabele utworzone przez aktualizację 5. usunąć z tabeli ModelDanychContainer.StanyAplikacji, o ile istnieją, cztery OSTATNIE rekordy Tagi_Klienci, Tagi_Przychody, Tagi_Rozchody oraz Tagi_Asortyment. Jeśli tego nie zrobimy to podczas aktualizacji dostaniemy wyjątek Cannot insert duplicate key row in object 'ModelDanychContainer.StanyAplikacji' with unique index 'AS_IDX_UzytkownikId_Klucz'. The duplicate key value is (<NULL>, Tagi_Klienci). Teraz można uruchomić aktualizację i trzymać kciuki, żeby się udała. Oczywiście nie muszę przypominać o wykonaniu kopii zapasowej PRZED jakimikolwiek zmianami w bazie. Poniżej skrypt, który realizuje kroki 2-4 (u mnie zamiast dbo był ustawiony schemat ModelDanychContainer więc jeśli ktoś będzie miał inny to musi to zmienić) CREATE TABLE dbo.RegulyAutomatyzacjiZmianaPrzesunieciaWykonaniaNaOpoznienieWykonaniaTemp ( idReguly int not null, przesuniecieWykonania int, godzinaWykonania time ); insert into dbo.RegulyAutomatyzacjiZmianaPrzesunieciaWykonaniaNaOpoznienieWykonaniaTemp select * from ModelDanychContainer.RegulyAutomatyzacjiZmianaPrzesunieciaWykonaniaNaOpoznienieWykonaniaTemp; drop table ModelDanychContainer.RegulyAutomatyzacjiZmianaPrzesunieciaWykonaniaNaOpoznienieWykonaniaTemp; CREATE TABLE dbo.UbezpieczeniaWlascicielskieZUSPrzeniesieWartosciPreferencyjneOdTmp ( IdUbezpieczenia int NOT NULL, PreferencyjneOd DateTime ); INSERT INTO dbo.UbezpieczeniaWlascicielskieZUSPrzeniesieWartosciPreferencyjneOdTmp SELECT * FROM ModelDanychContainer.UbezpieczeniaWlascicielskieZUSPrzeniesieWartosciPreferencyjneOdTmp; drop table ModelDanychContainer.UbezpieczeniaWlascicielskieZUSPrzeniesieWartosciPreferencyjneOdTmp; CREATE TABLE dbo.ParametryDokumentowDoKsiegowania_InterwalAutomatyznejWymianyOnline_Tmp ( InterwalAutomatycznejWymianyOnline int not null ); insert into dbo.ParametryDokumentowDoKsiegowania_InterwalAutomatyznejWymianyOnline_Tmp select * from ModelDanychContainer.ParametryDokumentowDoKsiegowania_InterwalAutomatyznejWymianyOnline_Tmp; drop table ModelDanychContainer.ParametryDokumentowDoKsiegowania_InterwalAutomatyznejWymianyOnline_Tmp;
    1 punkt
×
×
  • Dodaj nową pozycję...