Wpis z mikrobloga

Pomocy #sql #programowanie Mam program kasowy w którym jest cennik. Jest też data ważności cennika do wczoraj! Nie da się tego edytować, wchodzę więc w sql managment studio i klikam na cenniki i edit 200 rows - jest tam komórka z datą i flaga blokady edycji. Ale po zmianie wartości komórka zostaje natychmiast przywrócona do wartości pierwotnej. Czym to jest zablokowane? myślałem, że przez managment studio można zmienić co się chce.. najwyżej skopie się program - ale tu jest jakaś blokada. Mam backup w razie czego.
  • 22
@p0mian: nie wiem co robisz, ja jakich danych i oprogramowaniu, ale z reguły jeśli nie da się edytować zestawu, to nie ma w zapytaniu kolumny z unikalnym kluczem.
Dwa - jeśli zablokowana jest jedna kolumna, to może oglądasz widok, a nie dane.
Trzy. Zawsze można spróbować zupdatować zapytaniem nowadata WHERE staradata
@p0mian: na pewno dobrze podałeś nazwę tabeli (wraz ze schema) i constrainta? Generalnie jak masz new query to w lewym górnym rogu pownna być wybrana nazwa twojej bazy, a nazwa tabeli powinna być pełna ze schema czyli tym przedrostkiem. Najlepiej przeciągnąć tą nazwę i przerzucić niż samemu pisać. Tak samo z constraintem.

Jeżeli zrobisz SELECT * FROM sysobjects WHERE name = nazwaconstrainta
to powinno ci coś wyrzucić w tabeli. To oznacza,
@p0mian: rozwiń jeszcze w Tables folder Triggers i zobacz czy czegoś tam nie ma. Może być coś ustawione przez programistę bazy, żeby nie można było tego zmienić manualnie. Może to też być jakaś procedura która to przywraca totalnie gdzieś indziej, że ciężko to znaleźć jak nie jesteś programistą tego systemu, nie masz dokumentacji ani nikogo obeznanego pod ręką.
@p0mian: daj prawym script trigger as create to new query window i powinieneś dostać kod triggera. Jeżeli zobaczysz, że tam jest coś zmieniane np. twoje pole to możesz dać tego triggera disable i przetestować wtedy ten swój update.
@p0mian: no to jak jest encrypted to pewnie możesz co najwyżej spróbować wyłączyć oba w ciemno i zobaczyć czy coś pomogło. No ale generalnie tak jest z różnymi systemami czy erpami, że nie da się tak prosto zmienić coś bezpośrednio w bazie. I w sumie dobrze, bo ryzykujesz wtedy integralnością danych w tym systemie, więc lepiej nie gmerać.
@madry_i_mieciutki: no niby dobrze ale to mi dosłownie usunęło cały cennik lokalu a daty ważności cennika podstawowego nie da się edytować, nie wiem czy to błąd programistów czy celowe działanie - w kazdym razie dodzwonić się tam nie da dzisiaj więc chyba nie tylko mi tak się stało. A możesz mi jeszcze podpowiedzieć czy da się napisać taką kwerendę, która robi update kolumny dla całej tabeli (wszystkich rekordów?) Spróbuję przenieść wszystkie